python - 在 Pandas 图上标记事件点

标签 python matplotlib pandas jupyter-notebook

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

给予

enter image description here

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

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

相关文章:

python - 维护 Pandas 多索引数据帧的顺序

Python Pandas 合并数据框中的同名列

python - 库达 API 错误 : [1] Call to cuLaunchKernel results in CUDA_ERROR_INVALID_VALUE in Python

python - Django 在每个页面显示一个 View

python - mathplotlib.dates.DateFormatter() 自 strftime() 以来是否已弃用?

python - 如何在 python 中创建交互式绘图,根据我单击的位置生成新绘图?

python - 标题和标签未显示在直方图中

python - 无法执行 Python Pandas set_value

python - 更改 ipython 中的输出字体

python - 在Python中迭代对象实例的特定属性