在 Matplotlib 中的多个图形之间共享 Y 轴

问题描述 投票:0回答:2

我的图形需要非常高分辨率,因此我无法使用具有多个轴的子图(导致ValueError:102400x6400像素的图像尺寸太大)。然而,我仍然希望所有图形共享 y 轴,就像使用

plt.subplots(sharey=True)
所做的那样。在这种情况下,我不关心只显示一个 y 轴,就像子图的结果一样。相反,我希望刻度线位于相同的位置并且它们之间的距离相同。

python matplotlib
2个回答
3
投票

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

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()

enter image description here


0
投票

上面的答案对我不起作用,但上面答案中的链接有效:

创建两个子图后如何共享它们的 x 轴

© www.soinside.com 2019 - 2024. All rights reserved.