python – 删除每个y轴子图的第一个和最后一个刻度标签

为了创建我使用的5个子图:

`ax = plt.subplots(5, sharex=True)`

然后,我想删除每个y轴子图的第一个和最后一个标签刻度(因为它们相互叠加),我用过:

`plt.setp([a.get_yticklabels()[0::-1] for a in ax[0:5]], visible=False)`

但这只是删除了一些滴答声,我不明白背后的逻辑.

最佳答案
你应该小心第一次通话的结果.你可能想称之为

fig, ax = plt.subplots(5, sharex=True, squeeze=True)

如果你这样做,你可以只遍历所有轴:

for a in ax:
    # get all the labels of this axis
    labels = ax.get_yticklabels()
    # remove the first and the last labels
    labels[0] = labels[-1] = ""
    # set these new labels
    a.set_yticklabels(labels)

如果你想保持隐藏标签的风格,你可以使用

for a in ax:
    plt.setp(a.get_yticklabels()[0], visible=False)    
    plt.setp(a.get_yticklabels()[-1], visible=False)

转载注明原文:python – 删除每个y轴子图的第一个和最后一个刻度标签 - 代码日志