Pandas数据可视化实战:从基础绘图到线性拟合

小石头
小石头
发布时间:2026-10-14| 5人浏览过
原创

本文详解Pandas在数据可视化中的应用,涵盖从创建包含正态分布与对数分布的DataFrame开始,演示如何结合Matplotlib自定义坐标轴、绘制平均线与垂线。进一步展示多子图布局、直方图对比及折线图生成,最后通过最小二乘法实现线性拟合,提供完整代码示例与参数说明。

Pandas数据处理基础与绘图原理

Pandas作为Python生态中核心的数据处理库,以其便捷的操作接口著称。其底层架构基于NumPy数组,大量核心功能由NumPy或Pandas内置扩展模块实现。这些模块通过Cython编译为C代码并在C层面执行,从而确保了高效的数据处理速度。

接下来,我们将通过具体实例展示Pandas在数据处理与可视化方面的强大功能。

1. 数据构建

构建示例数据集

利用Pandas可以高效地构建数据集。以下示例演示如何创建一个包含5列、1000行的DataFrame对象:


mu1, sigma1 = 0, 0.1
mu2, sigma2 = 0.2, 0.2
n = 1000df = pd.DataFrame(
  {
    "a1": pd.np.random.normal(mu1, sigma1, n),
    "a2": pd.np.random.normal(mu2, sigma2, n),
    "a3": pd.np.random.randint(0, 5, n),
    "y1": pd.np.logspace(0, 1, num=n),
    "y2": pd.np.random.randint(0, 2, n),
  }
)
  • 其中,a1和a2列的数据分别来自正态(高斯)分布的随机抽样。
  • a3列的数据为0至4范围内的随机整数。
  • y1列的数据遵循0到1之间的对数均匀分布。
  • y2列的数据为0到1范围内的随机整数。

生成的数据结构如下所示:

自定义坐标轴与辅助线绘制

2. 图像绘制

Pandas的绘图函数返回一个matplotlib的Axes对象,这允许我们在该对象上进行深度自定义,例如添加垂线和平行线。这种灵活性对于以下场景非常有用:

1. 绘制平均参考线

2. 标记关键数据点


import matplotlib.pyplot as plt
ax = df.y1.plot()
ax.axhline(6, color="red", linestyle="--")
ax.axvline(775, color="red", linestyle="--")
plt.show()

此外,我们还可以自定义单个图形中显示的子图数量:


fig, ax = plt.subplots(2, 2, figsize=(14,7))
df.plot(x="index", y="y1", ax=ax[0, 0])
df.plot.scatter(x="index", y="y2", ax=ax[0, 1])
df.plot.scatter(x="index", y="a3", ax=ax[1, 0])
df.plot(x="index", y="a1", ax=ax[1, 1])
plt.show()

直方图与多子图布局

3. 绘制直方图

Pandas提供了简洁的方法来实现两个图形形状的对比分析:


df[["a1", "a2"]].plot(bins=30, kind="hist")
plt.show()

同时支持多子图绘制功能:


df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True)
plt.show()

生成折线图同样简单直观:


df[['a1', 'a2']].plot(by=df.y2, subplots=True)
plt.show()

线性回归拟合实现

4. 线性拟合分析

Pandas还可用于数据拟合,下面演示如何使用Pandas寻找与下图最接近的直线:

利用最小二乘法计算该直线与数据点的最短距离:


df['ones'] = pd.np.ones(len(df))
m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]

基于最小二乘法的计算结果,绘制y值与拟合直线的关系:


df['y'] = df['index'].apply(lambda x: x * m + c)
df[['y', 'y1']].plot()
plt.show()

至此,关于Pandas数据处理及绘图实现的介绍已完成。如需了解更多Pandas绘图相关内容,建议查阅本站过往文章或继续浏览后续章节。感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。