- 框架
- 基础绘图
- x,y坐标个数一一对应
- 显示调用
- 生成fig
- 准备数据
- 生成fig
- 准备数据
- 修改刻度值
- 指定显示的x刻度的列表
- 第一个参数:值
- 第二个参数:指定跟第一个参数对应的中文
- y显示0-40
- 增加标题描述
- 生成fig
- plt.figure(figsize=(20,8))
- 准备数据
- plt.plot(x,y_sh, label=”上海”)
- 北京温度,可以用plot多次画多个折线
- plt.plot(x,y_bj, label=”北京”, color=’r’, linestyle=’—‘)
- 添加注释,显示注释位置
- plt.legend(loc=’best’)
- 修改刻度值
- 指定显示的x刻度的列表
- 第一个参数:值
- 第二个参数:指定跟第一个参数对应的中文
- x_ch = [“11点{}分”。format(i) for i in x]
- plt.xticks(x[::5], x_ch[::5])
- y显示0-40
- y_ticks = range(40)
- plt.yticks(yticks[::5])
- 增加标题描述
- plt.xlabel(“时间”)
- plt.ylabel(“温度”)
- plt.title(“11到12点之间的温度”)
框架
matplotlib框架分为三层,上层可以调用下层
- Scripting 脚本层
- 用于可视化编程,pyplot模块提供一个与matplotlib打交到的接口,可以只通过调用pyplot模块的函数从而操作整个程序包来绘制图形
- 操作或改动Figure对象
- 大部分工作是处理样本文件的图形与坐标的生成
- 用于可视化编程,pyplot模块提供一个与matplotlib打交到的接口,可以只通过调用pyplot模块的函数从而操作整个程序包来绘制图形
- Artist 美工层
- 图形中所有能看到的元素都属于Artist,即标题、轴标签、刻度等组成图形的所有元素都是Atrist对象的实例
- Figure 指整个图形(包括所有的元素,比如标题、线等)
- Axes 坐标系,数据的绘图区域
- Axis 坐标轴,包含大小限制、刻度和刻度标签
- 一个figure可以包含多个axes,但是一个axes只能属于一个figure
- 一个axes可以包含多个axis
- 图形中所有能看到的元素都属于Artist,即标题、轴标签、刻度等组成图形的所有元素都是Atrist对象的实例
- Backend 后端层
- matplotlib的底层,实现了大量的抽象接口类,分配画图的资源
- FigureCanvas对象实现了绘图区域这一概念
- Renderer对象在FigureCanvas上绘图
- matplotlib的底层,实现了大量的抽象接口类,分配画图的资源
基础绘图
折线图
点的坐标
- 横坐标
- 纵坐标 ```python from matplotlib import pyplot as plt
plt.figure()
x,y坐标个数一一对应
plt.plot([1,2,3,4,5,6,7], [12,13,14,15,13,12,13])
显示调用
plt.show()
修改图标大小
```python
plt.figure(figsize=(20,8))
保存图片
plt.savefig("test.png")
温度变化绘制
准备数据
x = range(60) y = [random.uniform(15,18) for i in range(60) ] plt.plot(x,y, label=”上海”) plt.show()
2. 自定义x,y刻度以及中文显示
1. plt.xticks(x, **kwargs)
1. plt.yticks(y, **kwargs)
```python
# 生成fig
plt.figure(figsize=(20,8))
# 准备数据
x = range(60)
y = [random.uniform(15,18) for i in range(60) ]
plt.plot(x,y, label="上海")
# 修改刻度值
# 指定显示的x刻度的列表
# 第一个参数:值
# 第二个参数:指定跟第一个参数对应的中文
x_ch = ["11点{}分"。format(i) for i in x]
plt.xticks(x[::5], x_ch[::5])
# y显示0-40
y_ticks = range(40)
plt.yticks(yticks[::5])
plt.show()
准备数据
x = range(60) y = [random.uniform(15,18) for i in range(60) ] plt.plot(x,y, label=”上海”)
修改刻度值
指定显示的x刻度的列表
第一个参数:值
第二个参数:指定跟第一个参数对应的中文
x_ch = [“11点{}分”。format(i) for i in x] plt.xticks(x[::5], x_ch[::5])
y显示0-40
y_ticks = range(40) plt.yticks(yticks[::5])
增加标题描述
plt.xlabel(“时间”) plt.ylabel(“温度”) plt.title(“上海11到12点之间的温度”)
plt.show()
4. 再添加一个城市的温度显示
```python
# 生成fig
plt.figure(figsize=(20,8))
# 准备数据
x = range(60)
y_sh = [random.uniform(15,18) for i in range(60) ]
plt.plot(x,y_sh, label="上海")
# 北京温度,可以用plot多次画多个折线
y_bj = [random.uniform(1,3) for i in range(60) ]
plt.plot(x,y_bj, label="北京", color='r', linestyle='--')
# 添加注释,显示注释位置
plt.legend(loc='best')
# 修改刻度值
# 指定显示的x刻度的列表
# 第一个参数:值
# 第二个参数:指定跟第一个参数对应的中文
x_ch = ["11点{}分"。format(i) for i in x]
plt.xticks(x[::5], x_ch[::5])
# y显示0-40
y_ticks = range(40)
plt.yticks(yticks[::5])
# 增加标题描述
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("11到12点之间的温度")
plt.show()
多个坐标系显示
plt.subplots(nrows=1, ncols=1, **fig_kw) 创建多个坐标系的图
return:
- fig
- ax
```python
生成fig
plt.figure(figsize=(20,8))
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(20, 8))准备数据
x = range(60) y_sh = [random.uniform(15,18) for i in range(60) ]plt.plot(x,y_sh, label=”上海”)
ax[0].plot(x,y_sh, label=”上海”)
北京温度,可以用plot多次画多个折线
y_bj = [random.uniform(1,3) for i in range(60) ]
plt.plot(x,y_bj, label=”北京”, color=’r’, linestyle=’—‘)
ax[1].plot(x,y_bj, label=”北京”, color=’r’, linestyle=’—‘)
添加注释,显示注释位置
plt.legend(loc=’best’)
修改刻度值
指定显示的x刻度的列表
第一个参数:值
第二个参数:指定跟第一个参数对应的中文
x_ch = [“11点{}分”。format(i) for i in x]
plt.xticks(x[::5], x_ch[::5])
y显示0-40
y_ticks = range(40)
plt.yticks(yticks[::5])
ax[0].set_xticks(x[::5], x_ch[::5]) ax[1].set_xticks(x[::5], x_ch[::5]) ax[0].set_yticks(yticks[::5]) ax[1].set_yticks(yticks[::5])
增加标题描述
plt.xlabel(“时间”)
plt.ylabel(“温度”)
plt.title(“11到12点之间的温度”)
ax[0].set_title(“123”) ax[1].set_title(“456”)
ax[0].legend(loc=”best”) ax[1].legend(loc=”best”)
plt.show() ```