如果我有

import matplotlib.pyplot as plt

plt.plot([0,1], [0,1])
plt.plot([0,2], [0,1], scalex=False)

绘制第二行不会更新轴 xlim:
python - 当子图共享 x 轴时如何停止 xlim 更新-LMLPHP

但是,如果我创建具有共享 x 轴的子图,则 scalex kwarg 似乎没有效果:
fig, ax_arr = plt.subplots(2, 1, sharex=True)
for ax in ax_arr.flat:
    ax.plot([0,1], [0,1])
    ax.plot([0,2], [0,1], scalex=False)

python - 当子图共享 x 轴时如何停止 xlim 更新-LMLPHP

在此示例中,是否还有其他 kwarg 或设置可用于停止影响轴 xlim 的绘制线?

最佳答案

scalex 在创建 plot 时影响自动缩放。它不会被存储以在进一步调用 autoscale 时生效。

一个选项是为除第一个轴之外的所有轴转动 autoscaling off

import matplotlib.pyplot as plt

fig, ax_arr = plt.subplots(2, 1, sharex=True)

ax_arr[1].set_autoscalex_on(False)

for ax in ax_arr.flat:
    ax.plot([0,1], [0,1])
    ax.plot([0,2], [0,1], scalex=False)

plt.show()

python - 当子图共享 x 轴时如何停止 xlim 更新-LMLPHP

关于python - 当子图共享 x 轴时如何停止 xlim 更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49977636/

10-10 00:58