matplotlib plt画图
python画图工具matplotlib.pyplot简称plt,提供折线,散点等图形,对数据可视化有重要作用。说几个我平时用得到。
当然网上说的plot是折线图,里面可以变颜色,变形状...scatter是散点图等等,我开始用的时候总感觉比较懵逼的,到后来总算明白了其中的套路。
比如还是画一只股票的走势图,最简单的折线图,数据就是这样。
gf = ts.get_k_data('601888', start='2017-08-09', end='2017-08-23')
gf = gf.reset_index(drop=True)
1.figure与axes
fig = plt.figure()
这是我第一个懵逼的句子,感觉有些时候用有些时候不用也行,我知道这是新生成一个图,但是不明白有啥用。
后来明白这是要联合增加子图用。三个参数是行,列,位置。比如
ax = fig.add_subplot(2,1,1)
那就是说要把这个图分成两个子图,2行1列这个子图是放第一个,换句话说就是一个图分成上下两个,这是上面一个。
然后在这个子图上画图。
整体说来,figure像是电脑桌面,axes像是图标。
图标里面是具体的图,添加折线像这样。
ax.plot(gf['high'])
要画第二条折线或者其他图,就继续在ax上画就好了
ax.plot(gf['low'])
不过有个限制,在一个子图上的所有数据不能差值太大,比如股价一个是(30,50)另一个成交量(20000,50000)就用出现一根线有折线曲率,另一根就会变成直线。
遇到这种情况,要么把成交量放在第二个子图上,要么把两列normalize,但是这样会更改原始数据,就看如何取舍了。
第二个子图就是ax1 = fig.add_subplot(2,1,2)
如果没有子图需求,直接plt.plot(gf['high'])就行了,这种是默认在一个子图上画。
2.核心功能
最核心的就是折线plot,散点scatter,柱状hist,圆饼图pei,箱体图boxplot等统计用图,基本用法其中比较重要的参数是:
plt.plot(gf['high'],'r--'),折线可以更改颜色,形状等等。'r--'代表红色--形状的线
plt.hist(gf['high'],bins=50) bins柱状图的个数
plt.scatter(gf['high'],gf['low'],c=label) c=label传入一列分类数组,会把不同类别的点用不同颜色表示出来。
3.其他功能
现在我用的比较多的辅助功能有
plt.xlabel('x坐标名字')
plt.ylabel('y坐标名字')
plt.yticks(np.linspace(start, end, 10))y坐标以start为第一格,end值为最后一格,分为10格显示,对数坐标?
plt.xticks()自定义x坐标轴的间隔
ax.axvline(x坐标值)在x坐标值的位置画一条竖线
ax.axhline(x坐标值)在y坐标值的位置画一条横线
plt.grid()网格化
plt.show()
其他我没咋用到的:
plt.xlim()x轴取值范围
plt.ylim()y轴取值范围
或者plt.axis([xmin, xmax, ymin, ymax])
plt.legend()添加图例