Python matplotlib 画图教程:实例代码详解
189 浏览量
更新于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的用法,并应用于自己的数据分析项目中。
11381 浏览量
1059 浏览量
534 浏览量
634 浏览量
568 浏览量
331 浏览量
248 浏览量
1165 浏览量

weixin_38640984
- 粉丝: 5
最新资源
- Q-Dir:高效管理资源的多窗口文件管理工具
- MATLAB创始人贡献:数值计算源代码与EXE工具箱下载
- transposer工具:将分隔文本文件行和列高效转换
- 使用Python进行车辆价格预测分析
- STM32MP157单通道ADC26位高分辨率HAL库驱动实现
- iOS聊天通讯录功能实现简易Demo
- PDA上的KJava程序设计实战指南与阅读器应用
- Unity Android插件构建新方法:零安装快速搭建
- 打造类似微信的Android应用界面与功能实现
- 易语言模块实现网页转BBS发帖格式
- 全面解析Storyboard:iOS开发教程第一部分深入
- cocoadocs-queue: Ruby语言下cocoadocs工作队列实现机制
- React应用构建与部署入门指南
- UITableView无数据时展示占位图特效教程
- STM32MP157精确Systick延时实现与HAL库驱动应用
- Vue项目计算器的开发与配置指南