我正在绘制matplotlib图,我的x轴由YYYYMM格式的年和月字符串组成,如201901
的2019年1月。
我的问题是,某些数据跨度很长,这会使x轴刻度标签变得如此密集,以致它们彼此堆积在一起,变得无法读取。
我尝试将字体缩小,然后将标签旋转了90度,这很有帮助,但是对于我的某些数据来说仍然不够。
这是我的x轴之一看起来不错的示例:
下面是一个x轴示例,它过于密集,因为数据跨越了很长一段时间:
因此,我希望matplotlib在刻度标签开始彼此堆积时跳过打印一些刻度标签。例如,打印一月的标签,跳过打印二月,三月,四月和五月的标签,打印六月的标签,跳过打印七月,八月的标签,等等。但是我不知道该怎么做?
还是可以使用其他解决方案来解决此问题?
最佳答案
一种快速的肮脏解决方案如下:
ax.set_xticks(ax.get_xticks()[::2])
这只会显示每秒钟xtick。如果您只想显示第n个刻度,则可以使用
ax.set_xticks(ax.get_xticks()[::n])
如果您没有
ax
的句柄,则可以获取一个作为ax = plt.gca()
的句柄。或者,您可以指定与以下项一起使用的xtick数量:
plt.locator_params(axis='x', nbins=10)
关于python - 使用matplotlib绘制图时,X轴刻度标签太密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54783160/