我正在绘制一些二维时间序列数据,我想用X或其他标记在图上标记特定日期。例如,如果我拥有过去6个月中每个日期的所有数据,并且我想指出圣诞节在该图上的位置。最简单的方法是什么?我可以手动完成此操作,但希望在代码中添加一些使它自动化的功能。

编辑:到目前为止我的尝试。不知道是否有什么会更好。比较日期对象时遇到了一些麻烦,这就是为什么比较字符串按原样拆分的原因。

filt1.plot(figsize=(16,16))
filt3=filtered[(filtered.index.year==2012)&(filtered.index.month==12)&(filtered.index.day==25)]["Income_MA"]
filt3.plot(style="ro")

最佳答案

跟踪tcaswell的评论,这样的事情可能对您有用?

df = pd.Series(np.random.rand(180), index=pd.date_range(start=pd.datetime(2000, 9, 1), periods=180, freq='D'))
xmas_date = pd.datetime(2000, 12, 25)

myax = df.cumsum().plot()
ylims = myax.get_ylim()
myax.vlines(xmas_date, ylims[0], ylims[1])
myax.annotate("Xmas", xy=(xmas_date, ylims[1]),
              xytext=(-12, 5),
              textcoords='offset points')
myax.set_ylim(ylims)


给予



这是一个脆弱的解决方案,因为我已经手动设置了一个日期来进行注释,但是将代码包装到函数中并在您感兴趣的每个日期调用它应该非常容易。

关于python - 在 Pandas 图上标记事件点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21638727/

10-11 04:11