python - 使用matplotlib绘制图时,X轴刻度标签太密

标签 python matplotlib

我正在绘制matplotlib图,我的x轴由YYYYMM格式的年和月字符串组成,如201901的2019年1月。

我的问题是,某些数据跨度很长,这会使x轴刻度标签变得如此密集,以致它们彼此堆积在一起,变得无法读取。

我尝试将字体缩小,然后将标签旋转了90度,这很有帮助,但是对于我的某些数据来说仍然不够。

这是我的x轴之一看起来不错的示例:

x-axis that looks fine

下面是一个x轴示例,它过于密集,因为数据跨越了很长一段时间:

x-axis labels that are too dense

因此,我希望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/

相关文章:

python - 在 Selenium 中可视化焦点和交互

python - 无法让 ErrorResponse 在 Django Rest Framework 上工作

python - matplotlib 中的文本对象无法正确响应缩放

python - 如何在 Matplotlib 中为函数设置动画

python - Matplotlib/pyplot : easy way for conditional formatting of linestyle?

python - 将一维 numpy 数组的每个元素与同一数组的每个其他元素相减

python - 用 Python 计算线性回归标准化系数 (beta)

python - Unicode 问题,在 python 中正确解码/编码字符串

python从数据库值绘制图表

python - Matplotlib 补丁与提供的参数不匹配。