读代码,认真图表绘制过程。
>>> import numpy as np >>> from matplotlib import pyplot as plt >>> x = np.arange(1,11) >>> y = 2 * x + 5 >>> plt.title("Matplotlib demo") >>> plt.xlabel("x axis caption") >>> plt.xlim(0,10) >>> plt.xticks(np.arange(0,10)) >>> plt.ylabel("y axis caption") >>> plt.plot(x,y) >>> plt.show()
通过上述代码对比绘制生成的图形,你读懂了什么?
可能产生的几个问题:
解决了以上几个疑问,则绘制一份简单的图表就不存在问题了。
对于上述代码功能的进一步追问:
以下三段代码片断用以解决上述问题:
代码1:
import matplotlib zhfont1 = matplotlib.font_manager.FontProperties(fname="simhei.ttf") plt.title("绘图示例", fontproperties=zhfont1)
代码2:
l1,=plt.plot(x,y) l2,=plt.plot(a) plt.legend(handles = [l1, l2,], labels = ['a', 'b'], loc = 'best')
代码3:
plt.savefig(“path-of-file”)
片断小结
读以下代码,描述生成结果,并上机实践验证。
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2, 100) plt.plot(x, x, label='linear') plt.plot(x, x**2, label='quadratic') plt.plot(x, x**3, label='cubic') plt.xlabel('x label') plt.ylabel('y label') plt.title("Simple Plot") plt.legend() plt.show()
小练习
在一个直角坐标系中显示x2与2x的图像。
要求:
通过在plt.plot()中增加linestyle参数来实现。对于linestyle的值有这样几种:
| 符号 | 线型 | | : | .... | | -. | -.-.-. | | - - | - - - | | - | --- |
例如:
plt.plot(x,y1,linestyle=':',label='x2')
使用subplot函数
subplot()函数有三个参数,分别表示这样的含义。第1个参数表示图像分为几行,第2个参数表示图像分为几列,第3个参数表示显示在第几个位置。
例如:
plt.subplot(121) plt.plot(x,y1,linestyle=':',color='orange',label='x2') plt.legend() plt.subplot(122) plt.plot(x,y2,linestyle='-.',label='2x') plt.legend()
就会显示下图的示例。
给图像设置网格可以让读图的人获得更为精准的数据。在matplotlib中设置网络也是非常容易的。设置方法,在显示前加上以下语句即可。
plt.grid(True)
在图像上特定的地方进行文本标注有利于图像的解读。给图像加上plt.text()函数,就可以在指定位置设置相应的字符标签。
text()函数中包含以下几个参数,分别是(x,y,s)。
x和y表示text在坐标轴内显示的位置,s表示要显示的内容。
如下图所示: