在Pandas图上标记事件点

时间:2014-02-07 22:11:38

标签: python matplotlib pandas ipython-notebook

我正在绘制一些2-D时间序列数据,我想用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")

1 个答案:

答案 0 :(得分:1)

跟进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)

给予

enter image description here

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

相关问题