⽤matplotlib.subplot()画⼦图并共享y坐标轴
有时候想要把⼏张图放在⼀起plot,⽐较好对⽐,subplot和subplots都可以实现,具体对⽐可以查看。这⾥⽤matplotlib库的subplot来举个栗⼦。
数据长什么样
有两个数据段,第⼀个数据是DataFrame类型,第⼆个是ndarray类型。每个数据都有3列,我想画1*3的折线⼦图,第⼀个数据的第n列和第⼆个数据的第n列画在⼀张⼦图上。先来看⼀下两个数据长什么样⼉(为显⽰⽅便,只看前5⾏)。
In [1]: testing_set.head()# DataFrame类型
Out [1]:    Open    High    Low
0778.81789.63775.80
1788.36791.34783.16
2786.08794.48785.02
3795.26807.90792.20
4806.40809.97802.83# ndarray类型
In [2]: predicted_stock_price  #这⾥就只看前5⾏
Out [2]:[[790.6911796.39215779.3191]
[790.24524796.0866778.9673]
[789.5737795.52606778.3751]
[790.1047796.10864778.92395]
[790.8686796.94104779.7281]]
实现过程
注:plt.setp()是⽤来共享y坐标轴
# 创建画布
fig = plt.figure(figsize =(30,10), dpi =80)
# ⼦图1
ax1 = plt.subplot(131)
ax1.set_title('Open Price')
ax1.plot(testing_set.values[:,0], color ='red', label ='Real Open Price')
ax1.plot(predicted_stock_price[:,0], color ='blue', label ='Predicted Open Price')
plt._xticklabels(), fontsize=6)
ax1.legend()
# ⼦图2
ax2 = plt.subplot(132,sharey=ax1)
ax2.set_title('High Price')
ax2.plot(testing_set.values[:,1], color ='red', label ='Real High Price')
ax2.plot(predicted_stock_price[:,1], color ='blue', label ='Predicted High Price')
matplotlib中subplotax2.legend()
# ⼦图3
ax3 = plt.subplot(133,sharey=ax1)
ax3.set_title('Low Price')
ax3.plot(testing_set.values[:,2], color ='red', label ='Real Low Price')
ax3.plot(predicted_stock_price[:,2], color ='blue', label ='Predicted Low Price')
ax3.legend()
plt.show()
结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。