如何调整matplotlib中的坐标轴大小

1 投票
1 回答
7085 浏览
提问于 2025-04-17 23:48

我想调整图表中的坐标轴大小。我知道可以使用

plt.axis('equal')

或者

plt.gca().set_aspect('equal', 'datalim')

来调整坐标轴,这样所有坐标轴的单位大小就会一样。

datalim

但我想做的是,让子图的比例保持一致(在我的情况下是正方形),不管x轴和y轴的单位是什么。在这种情况下,图表的范围应该是 xlim = [0, 168]; ylim = [0, 1.01]

我尝试过

plt.gca().set_aspect('equal', 'box')

但结果并不理想:

box

我是不是漏掉了什么?

谢谢

1 个回答

4

这个 aspect 是用来处理数据的,意思是你在图表上想要保持1:1的比例,比如说让坐标轴看起来是正方形的。

你可以自己获取 xlimylim 的值,然后计算出比例:

fig, axs = plt.subplots(2,1)

axs[0].plot(np.random.randn(100).cumsum())
axs[1].plot(np.random.randn(100).cumsum())

aspect = np.diff(axs[1].get_xlim()) / np.diff(axs[1].get_ylim())
axs[1].set_aspect(aspect)

enter image description here

撰写回答