我正在使用matplotlib
进行散点图绘制,x轴标签一起运行到难以辨认的地步。这是所有相关代码:
plt.xticks(rotation=30)
plt.scatter(x,y)
plt.show()
x
和y
分别是x轴值和y轴值的列表。
此SO帖子(matplotlib: how to prevent x-axis labels from overlapping each other)提出了相同的问题,但是如果那里有答案,我将不予理。
此SO帖子(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个轴标签?
编辑:首先将所有标签设置为不可见,然后使每N个标签可见
plot = plt.scatter(x,y)
plt.setp(plot.axes.get_xticklabels(), visible=False)
plt.setp(plot.axes.get_xticklabels()[::5], visible=True)
以上每隔5个标签执行一次;将其更改为您所需的任何内容。