gpt4 book ai didi

python - Pandas 绘制时间序列,在选定日期有垂直线

转载 作者:IT老高 更新时间:2023-10-28 21:01:10 33 4
gpt4 key购买 nike

考虑这个时间序列,即维基百科类别中的累积编辑次数。

In [555]:
cum_edits.head()
Out[555]:
2001-08-31 23:37:28 1
2001-09-01 05:09:28 2
2001-09-18 10:01:17 3
2001-10-27 06:52:45 4
2001-10-27 07:01:45 5
Name: edits, dtype: int64
In [565]:
cum_edits.tail()
Out[565]:
2014-01-29 16:05:15 53254
2014-01-29 16:07:09 53255
2014-01-29 16:11:43 53256
2014-01-29 18:09:44 53257
2014-01-29 18:12:09 53258
Name: edits, dtype: int64

我必须这样绘制:

In [567]:

cum_edits.plot()

Out[567]:

<matplotlib.axes.AxesSubplot at 0x1359c810>

cummulative edits

我还想在每个 total_edits/n 之后绘制垂直线;例如n=10 次编辑。我很容易计算这些。

In [568]:

dates

Out[568]:

[Timestamp('2006-06-04 04:46:22', tz=None),
Timestamp('2007-01-28 23:53:02', tz=None),
Timestamp('2007-09-16 10:52:02', tz=None),
Timestamp('2008-04-28 21:20:40', tz=None),
Timestamp('2009-04-12 22:07:13', tz=None),
Timestamp('2010-04-09 18:45:37', tz=None),
Timestamp('2011-03-28 23:38:12', tz=None),
Timestamp('2012-05-24 13:44:35', tz=None),
Timestamp('2013-03-05 17:57:29', tz=None),
Timestamp('2014-01-29 16:05:15', tz=None)]

通常可以使用 axvline() 虽然我遇到两个问题。即使我调用 plt.axvline(x=0.5, color='r') 只是为了产生一条任意线,我也没有在 Pandas 图的顶部看到它。顺便说一下,我正在使用带有 %pylab inline 的 IPython。其次,我现在不知道如何将日期翻译成在 cum_edits.plot() 中使用的 x 位置,因为翻译对我来说是不可见的。我应该开始制作这些垂直线吗?

最佳答案

感谢@TomAugspurger

解决办法是把你的轴拿回来,然后使用 ax.vlines

ax = cum_edits.plot()
ymin, ymax = ax.get_ylim()
ax.vlines(x=dates, ymin=ymin, ymax=ymax-1, color='r')

Solutions with vlines

最后一个小问题是,如果 vlines 是 ymax 长,那么 matplotlib 会在我的绘图顶部添加额外的空间,所以我只是稍微减少长度以小于原始轴,即这就是为什么您会看到 ymax=ymax-1

关于python - Pandas 绘制时间序列,在选定日期有垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488085/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com