Python matplotlib 画图教程:实例代码详解

12 下载量 181 浏览量 更新于2024-09-03 收藏 417KB PDF 举报
"这篇文章主要分享了使用Python的matplotlib库进行数据可视化的一些实例代码,包括绘制基本图形、多张图以及直方图的方法。适合初学者参考学习,以便掌握Python的数据绘图技能。" 在Python中,matplotlib是一个强大的图形库,用于生成各种静态、动态和交互式的图表。本篇文章将详细介绍如何利用matplotlib进行数据可视化。 首先,我们需要导入matplotlib库中的两个关键模块:pyplot和numpy。`pyplot`提供了一套类似MATLAB的接口,用于创建和管理图形;`numpy`则是一个用于科学计算的库,提供高效的数组操作。 ```python import matplotlib.pyplot as plt import numpy as np ``` 一个基本的线图绘制例子如下: ```python t = np.arange(0.0, 2.0, 0.01) # 创建x轴数据,从0到2,步长0.01 s = np.sin(2 * np.pi * t) # 计算对应的y轴数据(正弦函数) plt.plot(t, s) # 绘制线图 plt.xlabel('time (s)') # 设置x轴标签 plt.ylabel('voltage (mV)') # 设置y轴标签 plt.title('About as simple as it gets, folks') # 设置图形标题 plt.grid(True) # 开启网格线 plt.savefig("test.png") # 保存图像为PNG格式 plt.show() # 显示图像 ``` 若需在同一窗口中绘制多张图,可以使用`subplot()`函数来布局。比如创建一个2行1列的布局,并分别绘制两张图: ```python x1 = np.linspace(0.0, 5.0) # 图一的x轴数据 x2 = np.linspace(0.0, 2.0) # 图二的x轴数据 y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) y2 = np.cos(2 * np.pi * x2) plt.subplot(2, 1, 1) # 选择布局中的第一个位置(从左上角顺时针计数) plt.plot(x1, y1, 'yo-') # 绘制图一,用黄色圆点连接线 plt.title('A tale of 2 subplots') plt.ylabel('Damped oscillation') plt.subplot(2, 1, 2) # 选择布局中的第二个位置 plt.plot(x2, y2, 'r.-') # 绘制图二,用红色点划线 plt.xlabel('time (s)') plt.ylabel('Undamped') plt.show() ``` 此外,matplotlib还支持绘制直方图。以下是一个简单的直方图示例,展示正态分布的数据: ```python mu = 100 # 正态分布的均值 sigma = 15 # 标准差 data = np.random.normal(mu, sigma, 1000) # 生成1000个服从正态分布的随机数 n, bins, patches = plt.hist(data, 50, density=1, facecolor='g', alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ') plt.text(60, .025, r'$\mu=100,\ \sigma=15$') plt.axis([40, 160, 0, 0.03]) plt.grid(True) plt.show() ``` 这个例子中,我们创建了一个直方图,用以表示1000个遵循特定正态分布的随机数。通过设置`density=1`,我们得到的是概率密度,而不是计数。`facecolor`和`alpha`参数控制了柱子的颜色和透明度。 matplotlib提供了丰富的功能,使得在Python中进行数据可视化变得简单而直观。无论是简单的线图、复杂的多图布局,还是统计分析中的直方图,都能通过其灵活的API轻松实现。通过学习这些实例,你可以更好地理解matplotlib的用法,并应用于自己的数据分析项目中。