Python 我有一个有两个轴的图形,如何使它们在matplotlib的y轴上具有相同的比例?

Python 我有一个有两个轴的图形,如何使它们在matplotlib的y轴上具有相同的比例?,python,pandas,numpy,matplotlib,graph,Python,Pandas,Numpy,Matplotlib,Graph,这是代码。这两个轴有两个不同的刻度。(ax1同时具有负值和正值,而ax2仅具有负值)。图形应该是这样的:ax1在x轴的顶部有一条线(正点),在x轴的下方有另一条线(带负x记号)。ax2也是如此 您可以在此处看到结果图: 要为两个地物指定相同的y轴限制,可以使用set_ylim: ymin, ymax = 0, 100 # Change these to whatever values you require ax1.set_ylim(ymin, ymax) ax2.set_ylim(ymin

这是代码。这两个轴有两个不同的刻度。(ax1同时具有负值和正值,而ax2仅具有负值)。图形应该是这样的:ax1在x轴的顶部有一条线(正点),在x轴的下方有另一条线(带负x记号)。ax2也是如此

您可以在此处看到结果图:


要为两个地物指定相同的y轴限制,可以使用
set_ylim

ymin, ymax = 0, 100  # Change these to whatever values you require
ax1.set_ylim(ymin, ymax)
ax2.set_ylim(ymin, ymax)
您还可以使用Matplotlib生成的默认y限制的最小值和最大值来动态设置限制,即不必手动指定:

ymin = min([ax1.get_ylim()[0], ax2.get_ylim()[0]])
ymax = max([ax1.get_ylim()[1], ax2.get_ylim()[1]])
ax1.set_ylim(ymin, ymax)
ax2.set_ylim(ymin, ymax)
要将x轴记号的垂直位置设置为零,可以使用以下命令:

ax1.spines['bottom'].set_position('zero')
ax2.spines['bottom'].set_position('zero')
如果要使用除零以外的值,以上是以下值的简写:

ax1.spines['bottom'].set_position(("data", 0))
ax2.spines['bottom'].set_position(("data", 0))

你有什么特别的困难?两个轴有不同的比例。我希望它们具有统一的缩放比例。基本上,我需要的是查看两个图形的比较,这就是为什么我制作了与您在图像中看到的轴类似的轴。谢谢!但是我们如何使负值出现在x轴下呢?只需将
ymin
值设置为最小绘制点处或以下的负值。我尝试过,但负值仍然会出现在x轴上。欢迎您-我还更新了以显示如何设置任意值(而不仅仅是零)在这段时间里,我的密码里都有答案。我有一些书要读。*掌纹*
ax1.spines['bottom'].set_position(("data", 0))
ax2.spines['bottom'].set_position(("data", 0))