Python 在Matplotlib中跨多个地物共享Y轴

Python 在Matplotlib中跨多个地物共享Y轴,python,matplotlib,Python,Matplotlib,我有需要非常高分辨率的图形,因此我不能使用多轴子图(导致ValueError:102400x6400像素的图像大小太大)。但是,我仍然希望所有图形共享y轴,就像使用plt.subplot(sharey=True)一样。在这种情况下,我不关心只显示一个y轴,因为子图的结果是这样的。相反,我希望记号位于相同的位置,并且它们之间的距离相同。当然,您可以简单地手动为两个轴设置相同的限制。事实上,这将是我在生产高质量产品时推荐的解决方案 ax1.set_xlim(xmin, xmax) ax2.set_x

我有需要非常高分辨率的图形,因此我不能使用多轴子图(导致ValueError:102400x6400像素的图像大小太大)。但是,我仍然希望所有图形共享y轴,就像使用
plt.subplot(sharey=True)
一样。在这种情况下,我不关心只显示一个y轴,因为子图的结果是这样的。相反,我希望记号位于相同的位置,并且它们之间的距离相同。

当然,您可以简单地手动为两个轴设置相同的限制。事实上,这将是我在生产高质量产品时推荐的解决方案

ax1.set_xlim(xmin, xmax)
ax2.set_xlim(xmin, xmax)
根据用例,可以自动计算
xmin
xmax

如果需要一个完全自动化的解决方案,或者需要真正的共享,那么您可以

import numpy as np
import matplotlib.pyplot as plt

x1 = np.arange(6)
y1 = np.tile([1,2],3) 

x2 = np.arange(5,11)
y2 = np.tile([6,8],3) 


fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()

ax1.plot(x1,y1)
ax2.plot(x2,y2)

ax1.get_shared_x_axes().join(ax1, ax2)
ax1.get_shared_y_axes().join(ax1, ax2)

ax2.autoscale()


plt.show()