Python轮子:数据可视化~matplotlib

原文链接:http://www.juzicode.com/python-module-matplotlib

Matplotlib是Python的2D绘图库,支持生成出版级图表,提供丰富的可视化类型和高度定制化接口,适用于数据分析、科研论文、商业报告等场景。

应用场景

  • 数据趋势分析可视化
  • 实验结果图表绘制
  • 实时数据监控仪表盘
  • 地理信息热力图生成
  • 多维数据关系展示
  • 学术论文插图制作

安装与导入

pip install matplotlib
import matplotlib.pyplot as plt

使用方法

1)折线图绘制

展示数据变化趋势的基础方法。

# juzicode.com/VX公众号:juzicode
x = [1,2,3,4,5]
y = [2,4,6,8,10]
plt.plot(x, y, 'r--')
plt.title('销售增长趋势')
plt.xlabel('季度')
plt.ylabel('销售额(百万)')
plt.savefig('line_chart.png')

2)柱状图比较

对比不同类别的数值差异。

# juzicode.com/VX公众号:juzicode
categories = ['A', 'B', 'C', 'D']
values = [23, 45, 56, 37]
plt.bar(categories, values, color=['#4CAF50','#2196F3','#FF9800','#E91E63'])
plt.grid(axis='y', alpha=0.5)
plt.savefig('bar_chart.png')

3)散点图分析

展示变量间相关性。

# juzicode.com/VX公众号:juzicode
import numpy as np
x = np.random.randn(100)
y = x * 2 + np.random.randn(100)*0.5
plt.scatter(x, y, alpha=0.6, c=np.arctan2(y, x))
plt.colorbar(label='角度值')
plt.savefig('scatter_plot.png')

4)多子图布局

创建复合图表进行对比分析。

# juzicode.com/VX公众号:juzicode
fig, axs = plt.subplots(2, 2, figsize=(10,8))
axs[0,0].plot(x, y, 'tab:blue')
axs[0,1].scatter(x, y, c='tab:orange')
axs[1,0].bar(categories, values, color='tab:green')
axs[1,1].pie(values, labels=categories, autopct='%1.1f%%')
plt.savefig('subplots.png')

5)3D曲面图

可视化三维数学函数。

# juzicode.com/VX公众号:juzicode
from mpl_toolkits.mplot3d import Axes3D
X = np.arange(-5,5,0.25)
Y = np.arange(-5,5,0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
plt.savefig('3d_surface.png')

6)动态实时绘图

实现数据实时可视化更新。

# juzicode.com/VX公众号:juzicode
plt.ion()  # 开启交互模式
fig, ax = plt.subplots()
x = np.linspace(0, 4*np.pi, 200)

for phase in np.linspace(0, 10*np.pi, 100):
    ax.clear()
    y = np.sin(x + phase)
    ax.plot(x, y, 'b-')
    ax.set_ylim(-1.5,1.5)
    plt.pause(0.1)
plt.ioff()

总结

Matplotlib核心优势:

  • 支持30+种基础图表类型
  • 高度可定制的绘图参数
  • 完善的文档和社区支持
  • 与NumPy/Pandas无缝集成

注意事项:

  • 中文字体需额外配置
  • 保存图像时注意dpi设置(推荐300+)
  • 大数据集建议使用rasterized=True优化性能
  • 交互式绘图后及时关闭交互模式

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注