You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:24:13