熊猫情节 axvspan

Posted

技术标签:

【中文标题】熊猫情节 axvspan【英文标题】:Pandas plot axvspan 【发布时间】:2017-04-12 16:28:14 【问题描述】:

我有一个这样的数据框

from datetime import date
import random

start_date = date.today().replace(day=1, month=1).toordinal()
end_date = date.today().toordinal()

df=pd.DataFrame.from_dict('dates':[ date.fromordinal(random.randint(start_date, end_date)) for i in xrange(10) ]
                        ,'n':np.random.randint(0,100,10))
df.index=df['dates']; del df['dates']
df.sort_index(inplace=True)

生成

             n
dates         
2016-01-24   0
2016-02-26  98
2016-03-04  68
2016-03-26  45
2016-05-03  89
2016-05-09  83
2016-05-11  58
2016-07-29  53
2016-09-18  79
2016-10-20  57

我想绘制它并为 2 月和 3 月绘制一个 axvspan。由于我的日期是随机的,我该如何选择这 2 个月并使用 axvspan

我的绘图代码很简单

ax=df.plot()

【问题讨论】:

axvspan(pd.datetime(2016, 2, 1), pd.datetime(2016,4,1)) 能给你想要的吗? 那行得通。出于某种原因,当我在循环中执行 ax.axvspan(pd.datetime(2016, 2, 1), pd.datetime(2016,4,1)) 时,我什么也没看到。否则它会工作 【参考方案1】:

这是一个例子。如果日期跨越数年,则必须改进。你也可以查看this question的答案,原理完全一样。

ax = df.plot()
# Getting the boundaries for dates in feb and march
period = df[(df.index.month > 1) & (df.index.month < 3)].index
# Highlighting
ax.axvspan(min(period) - MonthBegin(), max(period) + MonthEnd(),
           facecolor='g', edgecolor='none', alpha=.2)

【讨论】:

以上是关于熊猫情节 axvspan的主要内容,如果未能解决你的问题,请参考以下文章

熊猫情节不显示

如何用熊猫把传说放在情节之外

如何用熊猫把传说放在情节之外

情节堆积条形图熊猫数据框

python 熊猫情节

python 情节熊猫