在此借鉴datawhale的Matplotlib进行学习
Matplotlib是python的2D绘图库,用来绘制静态,动态,交互式的图标。
Matplotlib是python中公认的数据可视化工具,pandas和seaborn的绘图接口也是基于Matplotlib所作的高级封装。
Matplotlib可用于python脚本,jupyter notebook,web应用服务器和各种图形化用户界面工具
在Matplotlib中图像是画在figure上的(如jupyter窗体),每一个figure都包含一个或多个axxes(一个可以指定坐标系的子区域)
pyplot.subplots() >>>创建一个图形和一组子图,即创建figure和axes
Axes.plot() >>>绘制简单的折线图
#首先导入所需的库
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
figure_m, axes_m = plt.subplots() #创建一个包含一个axes的figure
axes_m.plot([1,2,3,4],[2,3,1,4])
[
根据文档介绍,还有一种更加简单的绘制图像方法 matplotlib.pyplot 可以直接在当前的axes上绘制图像,若未指定axes,matplotlib也会自动从创建
axes_m = plt.plot([1,2,3,4],[2,3,1,4])
figure的组成包含四个层级,也就是一个完整的matplotlib包含四个层级,层级也被称为容器。matplotlib通过各种命令方法操控各个层级,实现数据可视化。下图来自datawhale。
#第一种方式
y = np.linspace(0, 3, 100) #从0到3创建100个数据对象
figure_m, axes_m = plt.subplots()
axes_m.plot(y, x**4, label='x**4')
axes_m.plot(y, x**2, label='x**2')
axes_m.set_xlabel('x label')
axes_m.set_ylabel('y label')
axes_m.legend()
plt.show()
#第二种
y = np.linspace(0, 3, 100) #从0到3创建100个数据对象
plt.plot(y, x**4, label='x**4')
plt.plot(y, x**2, label='x**2')
plt.xlabel('x label')
plt.ylabel('y label')
plt.legend()
plt.show()
(摘自datawhale)
# 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()
plt.show()
OO模式是面向对象式绘图,更好的指定对象在数据量过大时更加清晰,适用于非交互式绘图
pyplot方法多用于交互式绘图