Python 在绘图上标记事件点

Python 在绘图上标记事件点,python,matplotlib,pandas,ipython-notebook,Python,Matplotlib,Pandas,Ipython Notebook,我正在绘制一些二维时间序列数据,我想在图上用X或其他标记标记特定日期。例如,如果我有过去6个月内每个日期的所有数据,我想指出圣诞节在这个图上的位置。实现这一点最简单的方法是什么?我可以手动完成,但更愿意在代码中添加一些自动化的东西 编辑:我到目前为止的尝试。我不确定是否有更好的方法。我在比较日期对象时遇到了一些问题,这就是为什么比较字符串被拆分的原因 filt1.plot(figsize=(16,16)) filt3=filtered[(filtered.index.year==2012)&am

我正在绘制一些二维时间序列数据,我想在图上用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)
给予


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

您能给我们展示一个您尝试过但不起作用的示例吗?我用我当前的解决方案编辑了我的帖子。您正在寻找
注释
axvline
?注释听起来很完美!我没有意识到这个特性,我将研究它的实现,谢谢!