跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Pandas 数据可视化基础绘图教程

Pandas 提供了便捷的内置绘图功能,底层基于 Matplotlib,使得数据探索变得简单高效。 Pandas 数据可视化的基础操作,包括环境配置、Series 与 DataFrame 的绘制、常用图表类型(折线、柱状、直方、散点、饼图)的选择以及自定义样式和保存图片的方法。内容涵盖从基础代码示例到进阶的子图布局与性能优化建议,帮助读者快速上手数据可视化流程。

LinuxPan发布于 2025/2/7更新于 2026/10/2595 浏览
Pandas 数据可视化基础绘图教程

Pandas 数据可视化基础绘图教程

1. 引言

众所周知,Pandas 是基于 Python 平台的大数据分析与处理的利器。在数据为王的时代,想要掌握数据分析能力,学会 Pandas 数据可视化工具是十分重要的。Pandas 内置了强大的绘图功能,底层基于 Matplotlib,使得数据探索变得简单高效。

本文将带领大家学习 Pandas 数据可视化的基础绘图,涵盖环境配置、Series 与 DataFrame 的绘制、图表类型选择以及自定义样式等内容。

2. 环境准备

IDE : Jupyter Notebook

Anaconda 3.X

首先确保已安装必要的库:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

注:导入 matplotlib.pyplot 作为绘图接口。

设置绘图样式并启用内联显示:

import matplotlib
matplotlib.style.use('ggplot')
%matplotlib inline

注:使用 ggplot 样式美化图表,并将图画在 Jupyter Notebook 中直接显示。

3. Series 基础绘图

3.1 默认折线图

使用 Pandas 创建一个 Series(序列),序列值是随机生成的 1000 个标准正态分布值,索引是从 2000-1-1 开始的 1000 个时间序列值。

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.plot()
plt.show()

注:使用 plot 默认画图。可以看出,下图非常不规则,因为相邻的两个值也是随机大小。

3.2 累积值曲线

在时间序列分析中,经常观察累积值曲线来观察走势。

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
plt.show()

注:这里加上了 ts = ts.cumsum(),意思是返回累积值。这个累积值看起来规则多了,适合分析趋势。

4. DataFrame 基础绘图

4.1 多列数据绘图

DataFrame 可以创建多组数据,类似于 Excel 表格。

df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list())
df = df.cumsum()
plt.figure(figsize=(, ))
df.plot()
plt.title()
plt.legend(loc=)
plt.show()
'ABCD'
10
6
'DataFrame Cumulative Plot'
'best'

注:这里使用 Pandas 创建了一个 DataFrame,包含 4 组数据(A、B、C、D 列)。每列都是随机生成的 1000 个标准正态分布值,索引是时间序列,并且求各自的累积值后画图。

4.2 指定 X 轴和 Y 轴

可以使用 x 和 y 参数指定绘图的数据列。

df3 = pd.DataFrame(np.random.randn(1000, 2), columns=['B', 'C']).cumsum()
df3['A'] = pd.Series(list(range(len(df3))))
df3.plot(x='A', y='B')
plt.title('Plot with Custom X and Y')
plt.show()

注:使用 DataFrame 创建了 2 组数据 B、C,并加上了一列名为 A,A 的值是 0-999。X 轴是 A 列数据,Y 轴是 B 列数据(累积值)。

5. 常用图表类型

Pandas 支持多种图表类型,通过 kind 参数切换。

5.1 柱状图 (Bar)

data = pd.Series(np.random.randn(10), index=list('ABCDEFGHIJ'))
data.plot(kind='bar')
plt.title('Bar Chart')
plt.show()

5.2 直方图 (Hist)

用于展示数据的分布情况。

data = pd.Series(np.random.randn(1000) * 10 + 50)
data.plot(kind='hist', bins=30, density=True, alpha=0.6)
plt.title('Histogram Distribution')
plt.show()

5.3 散点图 (Scatter)

data = pd.DataFrame({'x': np.random.randn(100), 'y': np.random.randn(100)})
data.plot(kind='scatter', x='x', y='y')
plt.title('Scatter Plot')
plt.show()

5.4 饼图 (Pie)

data = pd.Series([10, 20, 30, 40], index=['A', 'B', 'C', 'D'])
data.plot(kind='pie', autopct='%1.1f%%')
plt.title('Pie Chart')
plt.axis('equal')
plt.show()

6. 图表定制与保存

6.1 自定义样式

可以修改颜色、线型、标记等属性。

ts.plot(color='red', linestyle='--', marker='o', label='Random Walk')
plt.xlabel('Date')
plt.ylabel('Value')
plt.legend()
plt.grid(True)
plt.show()

6.2 子图 (Subplots)

在同一画布上绘制多个图表。

df = pd.DataFrame(np.random.randn(1000, 4), columns=list('ABCD')).cumsum()
df.plot(subplots=True, layout=(2, 2), figsize=(10, 8))
plt.tight_layout()
plt.show()

6.3 保存图片

将绘制的图表保存到本地文件。

fig = plt.figure()
df.plot()
plt.savefig('pandas_plot.png', dpi=300, bbox_inches='tight')
print('Figure saved successfully.')

7. 最佳实践与注意事项

  1. 数据清洗:绘图前确保数据没有缺失值或异常值,必要时进行填充或过滤。
  2. 性能优化:对于超大数据集(如百万行以上),建议先采样或使用聚合数据后再绘图。
  3. 可读性:添加清晰的标题、坐标轴标签和图例,避免信息过载。
  4. 配色方案:使用协调的颜色组合,避免使用过于刺眼的颜色。

8. 总结

本文介绍了 Pandas 库在数据可视化方面的基础应用。通过内置的 plot 方法,可以快速生成折线图、柱状图、散点图等多种图表。结合 Matplotlib 的定制能力,可以满足大多数数据分析场景下的可视化需求。掌握这些基础技能,将大大提升数据分析的效率和质量。

目录

  1. Pandas 数据可视化基础绘图教程
  2. 1. 引言
  3. 2. 环境准备
  4. 3. Series 基础绘图
  5. 3.1 默认折线图
  6. 3.2 累积值曲线
  7. 4. DataFrame 基础绘图
  8. 4.1 多列数据绘图
  9. 4.2 指定 X 轴和 Y 轴
  10. 5. 常用图表类型
  11. 5.1 柱状图 (Bar)
  12. 5.2 直方图 (Hist)
  13. 5.3 散点图 (Scatter)
  14. 5.4 饼图 (Pie)
  15. 6. 图表定制与保存
  16. 6.1 自定义样式
  17. 6.2 子图 (Subplots)
  18. 6.3 保存图片
  19. 7. 最佳实践与注意事项
  20. 8. 总结

更多推荐文章

查看全部
  • Spring AI 快速入门与实战指南
  • 飞书 OpenClaw 机器人 HTTP 401 认证失败排查与解决
  • 非科班出身:工作十年后转行程序员,35 岁依然不焦虑
  • 打工人副业增收:基于 Python 自动化的技术实践
  • 飞算 JavaAI 实战测评:重构、安全与测试自动化
  • C 语言预处理指令与宏定义的灵活运用
  • 微信指挥 AI 员工:QClaw 本地部署与实战指南
  • AI Agent 生产级框架实战:架构设计与核心代码实现
  • Claude AI 母公司更新服务条款:中国地区及公司受限访问
  • Linux 序列化与反序列化原理及自定义协议实现
  • AI 编程工具对比:GitHub Copilot、Trae 与 Cursor
  • PostgreSQL 高可用实战:主从流复制搭建与配置详解
  • ToDesk ToClaw 实测:AI 融入远程桌面工作流分析
  • 协作机器人轴孔装配的轨迹优化与智能搜索技术
  • 5 款 AI 写作工具横评:DeepSeek、Kimi、笔灵等网文创作辅助指南
  • Python 数据分析相比 Excel 的优势与入门指南
  • 骡子快跑 MuleRun:自进化 AI 数字员工开启 Agent 普及元年
  • 滑动窗口四题的共通解法
  • AI 大模型工程师职业前景与技术学习路径指南
  • 大模型领域 11 篇最新论文精选

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online