我的图形需要很高的分辨率,因此我不能使用多轴子图(结果 ValueError:102400x6400像素的图像大小太大)。但是,我仍然希望所有图形都共享y轴,就像使用plt.subplots(sharey=True)
一样。在这种情况下,我不必担心仅显示一个y轴,这与子图的结果一样。相反,我希望刻度线位于相同的位置并且它们之间的距离相同。
答案 0 :(得分:1)
当然,您可以简单地手动为两个轴设置相同的限制。实际上,这将是我在产生高质量输出时推荐的解决方案。
ax1.set_ylim(xmin, xmax)
ax2.set_ylim(xmin, xmax)
根据使用情况,可以自动计算xmin
和xmax
。
如果需要完全自动化的解决方案,或者需要真正的共享,则可以share axes after their creation。
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()