如何仅显示第n个轴标签

时间:2019-07-15 22:03:16

标签: matplotlib

我正在使用matplotlib进行散点图绘制,x轴标签一起运行到难以辨认的地步。这是所有相关代码:

plt.xticks(rotation=30)
plt.scatter(x,y)
plt.show()

xy分别是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个标签执行一次;将其更改为您所需的任何内容。

0 个答案:

没有答案