如何仅显示每第n个轴标签。
如何仅显示每第n个轴标签。
我正在使用matplotlib
制作散点图,但是x轴的标签太过密集,导致无法辨认。以下是相关代码:
plt.xticks(rotation=30) plt.scatter(x,y) plt.show()
x
和y
分别是x轴和y轴的值列表。
这个Stack Overflow的帖子(How to prevent x-axis labels from overlapping)也提出了同样的问题,但是如果有任何答案,我没能找到。
这个Stack Overflow的帖子(Cleanest way to hide every nth tick label in matplotlib colorbar?)在颜色条的上下文中提出了类似的问题。所有看起来对他人有效的回答都是以下形式:
for label in cbar.ax.xaxis.get_ticklabels()[::2]: label.set_visible(False)
或者
plt.setp(cbar.ax.get_xticklabels()[::2], visible=False)
其中cbar
是提问者的颜色条对象。每次我试图将这些解决方案应用到我的情况时,例如
plt.xticks(rotation=30) plot = plt.scatter(x,y) plt.setp(plot.get_xticklabels()[::2], visible=False) plt.show()
我会遇到错误,例如
AttributeError: 'PathCollection' object has no attribute 'get_xticklabels'.
类似上面的,如果我尝试plot.ax.get_xticklabels()
,我会遇到AttributeError: 'PathCollection' object has no attribute 'ax'
等错误。
如何仅显示每个第n个轴标签?