首页 > 解决方案 > 绘制日期时比例不一致

问题描述

我有一个格式化的日期matplotlib.dates.date2num列表和一个整数列表。我正在尝试在 x 轴上绘制带有日期的折线图。但是,matplotlib 在使用 Python 3 时并不总是正确地绘制日期。但是,我注意到在使用 Python 2 时这不是问题。

这是我的代码:

fig, ax = plt.subplots()
plt.title(constants.chart_title)
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis ')
fig.autofmt_xdate()
plt.plot_date(;ist_of_formatted_dates, list_of_integers)
plt.savefig('chart.png')

这是使用 2 个不同版本的 python 输出相同脚本的示例:

Python 2.7

Python 3.6

使用 Python 3 时,似乎 matplotlib 正在绘制所有奇数天,问题是 3 月有 31 天,所以 03-31 和 04-01 相隔 1 天,即使所有其他奇数天都是 2相隔几天。

有什么解决方法吗?

标签: python-3.xmatplotlib

解决方案


感谢 Jody Klymak,我能够解决这个问题。我在保存图表之前添加了几行代码:

plt.xticks()
locator = mpd.AutoDateLocator(interval_multiples=False)
ax.xaxis.set_major_locator(locator)

matplotlib更改了 Python 3 的一些默认 kwargs,因此最后两行代码只是将其更改回原来的行为。并plt.xticks()确保日期格式正确。


推荐阅读