Python matplotlib 画图教程:实例代码详解
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的用法,并应用于自己的数据分析项目中。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-20 上传
2021-01-01 上传
2020-09-20 上传
2023-05-09 上传
2020-09-21 上传
2020-09-17 上传
weixin_38640984
- 粉丝: 4
- 资源: 944
最新资源
- 俄罗斯RTSD数据集实现交通标志实时检测
- 易语言开发的文件批量改名工具使用Ex_Dui美化界面
- 爱心援助动态网页教程:前端开发实战指南
- 复旦微电子数字电路课件4章同步时序电路详解
- Dylan Manley的编程投资组合登录页面设计介绍
- Python实现H3K4me3与H3K27ac表观遗传标记域长度分析
- 易语言开源播放器项目:简易界面与强大的音频支持
- 介绍rxtx2.2全系统环境下的Java版本使用
- ZStack-CC2530 半开源协议栈使用与安装指南
- 易语言实现的八斗平台与淘宝评论采集软件开发
- Christiano响应式网站项目设计与技术特点
- QT图形框架中QGraphicRectItem的插入与缩放技术
- 组合逻辑电路深入解析与习题教程
- Vue+ECharts实现中国地图3D展示与交互功能
- MiSTer_MAME_SCRIPTS:自动下载MAME与HBMAME脚本指南
- 前端技术精髓:构建响应式盆栽展示网站