在pandas-df中为时间序列图添加一条垂直线



我用这个问题的答案尝试在我的时间序列图中添加一条垂直线:如何在Pandas中的时间序列上绘制垂直线?

这是我的代码:

ax = df.plot(figsize=(12,8), logy=True, title='Random Forest Regressor Performance',
color={'price': 'blue', 'count': 'orange', 'pred': 'green'})
ax.axvline(pd.to_datetime('2021-08-23'), color='r', linestyle='--', lw=2)

这是我的数据(我将日期(日期时间(设置为索引(:

pred>td>8970939418.36028359734461.636312403
日期价格计数
2018-01-0113657.2012671.454
2018-01-0214982.1018561.360125144
2018-01-03
2021-10-3061888.10
2021-10-3161318.00

我假设pandas没有将轴格式设置为日期-时间,而是将日期-时间值转换为数字并更改刻度标签。显式创建轴并设置正确的格式即可工作。

根据这个公认的答案,下面的最小示例显示了如何设置轴的日期时间格式,并通过使用相应的日期时间字符串添加hline。

import matplotlib.pyplot as plt
import pandas as pd
times = pd.date_range('2021-12-07', periods=500, freq='D')
yvalues = range(times.size)
df = pd.DataFrame(yvalues, times)
fig, ax = plt.subplots(1)
fig.autofmt_xdate()
ax.axvline(pd.to_datetime('2023-01-23'), color='r', linestyle='--', lw=2)
ax = df.plot(ax=ax, title='Random Forest Regressor Performance')
plt.show()

这导致了这个图

最新更新