Pandas 熊猫图axvspan
我有一个这样的数据帧Pandas 熊猫图axvspan,pandas,matplotlib,visualization,Pandas,Matplotlib,Visualization,我有一个这样的数据帧 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 i
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。由于我的日期是随机的,我如何选择这两个月并使用axvspan
我的绘图代码很简单
ax=df.plot()
这里有一个例子。如果日期跨越几年,则必须加以改进。您也可以检查的答案,因为原则是完全相同的
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)
ax=df.plot()
#获取2月和3月日期的边界
期间=df[(df.index.month>1)和(df.index.month<3)]指数
#突出显示
ax.axvspan(最小(周期)-MonthBegin(),最大(周期)+MonthEnd(),
facecolor='g',edgecolor='none',alpha=.2)
axvspan(pd.datetime(2016,2,1)、pd.datetime(2016,4,1))能满足您的需求吗?这很有效。由于某种原因,当我在循环中执行ax.axvspan(pd.datetime(2016,2,1),pd.datetime(2016,4,1))时,我什么也看不到。否则就行了