图像是我们最直观的数据表达方式,python的matplotlib库可以用来画图。下面来简单总结下matplotlib的使用方法。
上篇讲matplot画图中用到的基础对象,包括图像Figure,平面曲线Line2D,坐标轴Axes,图例Legend, 注解Annotation, 注释Text
理解这些对象,有利于我们更好的用matplot画图。
matplotlib 导入
1 | import matplotlib.pyplot as plt |
简单demo
1 | x = np.linspace(-1, 1, 50) |
基础属性
图像Figure
matplot中,图像对应的定义类是matplotlib.figure.Figure
1 | # num 标识编号,figsize 8英寸*5英寸,dpi图像的dp密度,facecolor背景色白色,edgecolor背景色白色 |
plt.figure()创建了图像,并返回matplotlib.figure.Figure对象,这里我们选择隐式处理返回的对象。
平面曲线Line2D
通过plot()方法创建matplotlib.line.Line2D对象
1 | # 指定曲线的颜色,线的宽度,线的样式。 |
具体的参数可以在matplotlib.pyplot.Line2D的初始化函数里找到:
1 | def __init__(self, xdata, ydata, |
坐标轴Axes
坐标轴的定义类是matplotlib.Axes
1 | # xlim()和ylim()设置坐标轴范围 |
我们可以看到,这里二维图像默认的坐标轴有四条(上下左右)
更复杂的坐标轴设置:
1 | # 获取坐标轴实例 |
调整坐标轴上刻度的位置
1 | # 值可以选择top,bottom,both,default,none |
默认的坐标轴之间的连接处类似于矩形,我们可以调整坐标轴之间连接处具体的位置
1 | # spines指定修改的是哪一条坐标轴,set_position()有好几个重载方法,这里用到的是set_position(self, position),,其中position参数是一个二维tuple。 |
『outward』数组的第二个值是个数值,0的话,x轴与y轴的焦点正好在y轴最底部,如果n>0,相当于向y轴负方向移动距离n。
『axes』 数组的第二个值取值范围0.0-1.0,表示将端点放在坐标轴的指定比例的位置
『data』 数组的第二个值就是坐标轴上具体的位置
图例Legend
图例对应着的是 matplot.legend类
1 | # 图例的话,需要先通过plot()方法创建Line2D对象 |
注解Annotation
注解对应着的是 matplot.text.Annotation
1 | plt.annotate(r'$2x+1=%s$' % y0, |
注释Text
注释对应的定义类是 matplot.text.Text
1 | plt.text(x=-3.7, |
通过上面的注释和注解,我们再补充一条线段,一个点
1 | # 画虚线 |