matplotlib axes坐标设置疑问:为何指定坐标未显示在X轴?
关于Matplotlib中
plt.axes()坐标的工作机制说明 你之所以会疑惑指定的坐标没显示在X轴上,是因为**plt.axes()的参数根本不是用来设置数据坐标轴(X/Y轴)的范围,而是用来定义子图在整个绘图画布中的位置和大小的**。
先明确plt.axes()参数的真实含义
它接收的是一个长度为4的列表[left, bottom, width, height],所有参数的取值范围都是0到1,代表相对于整个绘图窗口的归一化比例:
left:子图左边缘距离画布左边缘的比例(0=最左侧,1=最右侧)bottom:子图下边缘距离画布下边缘的比例width:子图宽度占画布总宽度的比例height:子图高度占画布总高度的比例
结合你的代码来看
你的代码里创建了两个并排的子图:
- 第一个子图
plt.axes([.05,.05,.425,.9]):左边缘在画布5%的位置,下边缘在5%,宽度占42.5%,高度占90%——对应图表里左侧的蓝色曲线子图 - 第二个子图
plt.axes([.525,.05,.425,.9]):左边缘在画布52.5%的位置,和第一个子图之间留出了5%的空隙(0.525 - (0.05+0.425) = 0.05),宽度和高度和第一个子图一致——对应右侧的红色曲线子图
如果要设置数据坐标轴的范围
如果你想控制X轴(年份)或者Y轴(百分比)的显示范围,应该用plt.xlim()/plt.ylim()或者axes.set_xlim()/axes.set_ylim()。比如在第一个子图绘制后添加:
plt.xlim(1970, 1990) # 把X轴范围限定在1970到1990年
这样就能看到X轴只显示你指定的年份范围了。
内容的提问来源于stack exchange,提问作者Nitin
相关产品推荐
相关产品推荐

