如何避免 matplotlib 中 x 刻度之间的重叠?

How to avoid overlap between x ticks in matplotlib?

我尝试使用 matplotlib 绘制对日期的依赖关系(我使用日期作为 X 值)。结果,我得到了一个带有大量 x-ticks(日期)的图,并且这些日期重叠,以至于无法识别那里的日期。

我读到问题可能出现的日期不是真正的日期对象,而是表示日期的字符串(例如“2015-02-12”)。但是,我确实有日期对象,但它仍然不起作用。

这是我的代码:

plt.figure()
plt.xlim([date_1, date_2])
plt.xticks(rotation=90)
plt.plot(df['col1'].tolist(), df['col2'].tolist(), marker = 'o')
plt.savefig(fname)

我记得通过告诉 python 不绘制所有日期时间而只绘制巨大列表中的每个第 n 个日期时间来解决这个问题。

在我的代码中,我通过以下命令解决了这个问题:

ax.axes.get_xaxis().set_ticks(datetimes[::2])

请注意,是 [::2] 告诉 python 取第二个元素。

您应该尝试不同的值,看看最适合您的值是 2、50 还是 200。