一、前言
matplotlib的图像是华仔figure上的,每一个figure包含了一个或者多个axes,一个完整的matplotlib图像会包括下面四个层级:
- Figure:顶层级,用于容纳所有绘图元素
- Axes:matplotlib宇宙的核心,容纳大量元素来构造子图,一个figure可以由一个或者多个子图组成
- Axis:axes的下属层级,用于处理所有和坐标轴、网格有关的元素
- Tick:axis的下属层级,用于处理所有和刻度有关的元素
matplotlib提供了两种绘图接口,:
- 依赖pyplot自动创建figure和axes,并绘图
- 显示地创建figure和axes,并且在上边调用绘图方法,这种方法也是oo模式
二、通用绘图模板
2.1 OO绘图模式
一个流程化的matplot绘图过程将由下列五步构成:
- 准备数据
- 设置绘图样式,这一步并非必须
- 定义布局
- 绘制图像
- 添加标签、文字和图例
# step1 准备数据
x = np.linspace(0, 2, 100)
y = x**2
# step2 设置绘图样式,这一模块的扩展参考第五章进一步学习,这一步不是必须的,样式也可以在绘制图像是进行设置
mpl.rc('lines', linewidth=4, linestyle='-.')
# step3 定义布局, 这一模块的扩展参考第三章进一步学习
fig, ax = plt.subplots()
# step4 绘制图像, 这一模块的扩展参考第二章进一步学习
ax.plot(x, y, label='linear')
# step5 添加标签,文字和图例,这一模块的扩展参考第四章进一步学习
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend() ;
2.2 pyplot绘图模式
一个流程化的matplot绘图过程将由下列几步构成:
- 准备数据
- 调用期望图像所对应的方法
- 设置各个轴的名称、图中曲线的名称、图标题
- 显示图像
x = np.linspace(0, 2, 100)
y = x**2
plt.plot(x, y, label='test')
plt.xlabel('x')
plt.ylabel('y')
plt.title('pyplot')
plt.legend()
plt.show()