为了创建我使用的5个子图:
`ax = plt.subplots(5, sharex=True)`
Run Code Online (Sandbox Code Playgroud)
然后,我想删除每个y轴子图的第一个和最后一个标签刻度(因为它们相互叠加),我用过:
`plt.setp([a.get_yticklabels()[0::-1] for a in ax[0:5]], visible=False)`
Run Code Online (Sandbox Code Playgroud)
但这只是删除了一些滴答声,我不明白背后的逻辑.
Dav*_*ker 12
你应该小心第一次通话的结果.你可能想称之为
fig, ax = plt.subplots(5, sharex=True, squeeze=True)
Run Code Online (Sandbox Code Playgroud)
如果你这样做,你可以只遍历所有轴:
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)
Run Code Online (Sandbox Code Playgroud)
如果你想保持隐藏标签的风格,你可以使用
for a in ax:
plt.setp(a.get_yticklabels()[0], visible=False)
plt.setp(a.get_yticklabels()[-1], visible=False)
Run Code Online (Sandbox Code Playgroud)
使用MaxNLocator:
from matplotlib.ticker import MaxNLocator
ax.yaxis.set_major_locator(MaxNLocator(prune='both'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9015 次 |
| 最近记录: |