【发布时间】:2021-05-13 14:39:50
【问题描述】:
我正在尝试使用 axvline 将垂直线添加到使用 matplotlib 的折线图中,并且遇到了反复出现的错误。我一直在寻找解决方案并阅读这里的建议How to draw vertical lines on a given plot in matplotlib,但他们并没有特别关注使用日期时间。这里讨论了一个解决方案matplotlib plot_date() add vertical line at specified date,这里给出了一个类似的答案How do you plot a vertical line on a time series plot in Pandas?,这很有帮助,但是当我实施建议时(建议基本上是添加 plt.axvline(dt.datetime(2020, 9, 21))我的折线图将所有数据压缩到一个点,并在图表的末尾添加一条垂直线like so。
这是我的代码:
Australia_data.set_index('date')['new_cases'].plot()
sns.set(font_scale=1.4)
Australia_data.set_index('date')['new_cases'].plot(figsize=(12, 10), linewidth=2.5)
plt.xlabel("Date", labelpad=15)
plt.ylabel("New Cases", labelpad=15)
plt.title("Australia daily COVID-19 cases", y=1.02, fontsize=22)
plt.axvline(dt.datetime(2020, 9, 21))
真的不知道这里出了什么问题,任何建议将不胜感激!
【问题讨论】:
-
对我来说,如果我使用 Python 日期时间列表作为 x 轴,axvline 可以正常工作。因此,既然您在这里为 pd DataFrame 调用 plot 方法,我怀疑这与 pandas 在图中处理日期时间的方式有关。您可能需要调整 axvline 的 x 坐标。
标签: python datetime matplotlib axvline