首页 > 解决方案 > 如何在 matplotlib 3.2.1 的 xlim 中使用日期?

问题描述

我正在尝试为我的图表设置 x 限制。我有 datetime64[D] 格式的时间数组。该图将该数组作为 x 轴,但是我无法在 matplotlib 3.2.1 中使用plt.xlim( )进行修改,并且它给出了错误。如果我在 matplotlib 2.0.0 中传递两个日期字符串,它会完美运行。你能告诉我如何为新版本做同样的事情吗?

我附上了导致部分代码的问题

time_stamp = np.arange('2020-02-24', '2020-05-13', dtype='datetime64[D]')

plt.figure(figsize=(14,7))

ax1 = plt.subplot(1, 2, 1)
ax1.plot(time_stamp, df_us['positive'], color='red')
ax1.plot(time_stamp, df_in['positive'], color='blue')
ax1.plot(time_stamp, df_it['positive'], color='green')

ax2 = plt.subplot(1, 2, 2, sharey=ax1, sharex=ax1)
ax2.plot(time_stamp, df_us['death'], color='lightcoral')
ax2.plot(time_stamp, df_in['death'], color='lightskyblue')
ax2.plot(time_stamp, df_it['death'], color='lightgreen')

plt.yscale(value="log")
plt.ylim(1, 1e7)
plt.xlim('2020-02-24','2020-05-12')

x_ticks = np.arange('2020-02-25', '2020-05-15', 10, dtype='datetime64[D]')
x_labels = ['25 Feb', '06 Mar', '16 Mar', '26 Mar', '05 Apr', '15 Apr', '25 Apr', '05 May']
plt.xticks(x_ticks, x_labels)

绘图结果

您可以在上面的链接中看到结果。plt.xlim('2020-02-24','2020-05-12')在 2.0.0 中效果很好

但是,当我在 3.2.1 中运行相同时,我收到以下错误消息:

matplotlib.units.ConversionError:无法将值转换为轴单位:'2020-02-24'

提前感谢您的帮助!

标签: pythonpython-3.xmatplotlibplot

解决方案


推荐阅读