欢迎来到资源库(www.zyku.net)

Python教程

当前位置:首页 > 网络编程 > Python教程 > 坐标轴

matplotlib.subplot()画子图并共享y坐标轴的方法

时间:2022-02-10|栏目:Python教程|点击:|我要投稿

有时候想要把几张图放在一起plot,比较好对比,subplot和subplots都可以实现,具体对比可以查看参考博文。这里用matplotlib库的subplot来举个栗子。

数据长什么样

有两个数据段,第一个数据是DataFrame类型,第二个是ndarray类型。每个数据都有3列,我想画1*3的折线子图,第一个数据的第n列和第二个数据的第n列画在一张子图上。先来看一下两个数据长什么样儿(为显示方便,只看前5行)。

In [1]: testing_set.head()  # DataFrame类型
Out [1]:     Open    High     Low
		 0  778.81  789.63  775.80
		 1  788.36  791.34  783.16
		 2  786.08  794.48  785.02
		 3  795.26  807.90  792.20
		 4  806.40  809.97  802.83  # ndarray类型
		 
In [2]: predicted_stock_price  #这里就只看前5行
Out [2]: [[790.6911  796.39215 779.3191 ]
 		 [790.24524 796.0866  778.9673 ]
 		 [789.5737  795.52606 778.3751 ]
		 [790.1047  796.10864 778.92395]
 		 [790.8686  796.94104 779.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.setp(ax1.get_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')
ax2.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()

结果:

(资源库 www.zyku.net)

原文链接:https://blog.csdn.net/m0_38125087/article/details/106593500

上一篇:python使用多线程备份数据库的步骤

栏    目:Python教程

下一篇:详解python字符串驻留技术

本文标题:matplotlib.subplot()画子图并共享y坐标轴的方法

本文地址:https://www.zyku.net/python/9717.html

关于我们 | 版权申明 | 寻求合作 |

重要申明:本站所有的文章、图片、评论等内容,均由网友发表或上传并维护或收集自网络,仅供个人学习交流使用,版权归原作者所有。

如有侵犯您的版权,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:95148658 | 邮箱:mb8#qq.com(#换成@)

苏ICP备2020066115号-1

本网站由提供CDN加速/云存储服务