【问题标题】:Matplotlib Subplot - Unexpected Y axis ticksMatplotlib 子图 - 意外的 Y 轴刻度
【发布时间】:2018-02-15 13:36:32
【问题描述】:

我正在使用 matplotlib 子图。这是我的代码的骨架:

import matplotlib.pyplot as plt
from matplotlib import gridspec

plt.close('all')

f, axarr = plt.subplots(2, sharex=True,)
gs = gridspec.GridSpec(2, 1, height_ratios=[3, 1]) 

axarr[0] = plt.subplot(gs[0])   
axarr[1] = plt.subplot(gs[1]) 

axarr[0].set_ylim([-10,10])
axarr[1].set_ylim([-1,1])

plt.tight_layout()
f.subplots_adjust(hspace=0)
plt.show()

这是我从这段代码中得到的输出。

如您所见,在左侧 y 轴上,我得到 ytick 标签,它们相互重叠,而右侧 y 轴上的“奇怪”y 轴刻度标签 (0)。我该如何解决这个问题?我会很感激能在这里得到帮助。

【问题讨论】:

    标签: python-2.7 matplotlib


    【解决方案1】:

    这些是上部子图的 x 标签,它们仅被下部子图部分隐藏。如果您愿意,请关闭它们,

    axarr[0].set_xticklabels([])
    

    为了使刻度标签不重叠,您可以更改轴的 ylimit,

    axarr[0].set_ylim([-10.5,10])
    axarr[1].set_ylim([-1,1.2])
    

    【讨论】:

    • 谢谢,它成功了。在我使用您的建议后,右侧的 ytick 标签 (0) 现在消失了。但是,在左侧的 y 轴上,刻度标签仍然重叠。有什么方法可以防止左侧y轴上的刻度标签重叠吗?
    • 你想用它来代替它吗?只显示其中一个标签(哪一个?)或同时删除?或者更改坐标区范围,使标签不会出现在坐标区边缘?
    • 如果我能够更改轴限制以使标签不会出现在轴的边缘,那就太好了。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2020-12-16
    • 2020-08-29
    • 1970-01-01
    • 2011-03-29
    • 2012-03-14
    • 2021-11-07
    相关资源
    最近更新 更多