为了创建 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 = a.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)
注意:您可能需要致电draw()
在访问刻度标签之前(请参阅:https://stackoverflow.com/a/41131528/8144672)。例如,当绘制 PDF 时,您必须调用plt.gcf().canvas.draw()
before get_xticklabels()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)