【发布时间】:2016-02-29 07:18:19
【问题描述】:
我有一个两列数据集,一个包含 1990-2015 的每日日期,另一个包含电力输出。我想在一个折线图上绘制特定年份的功率输出、整个数据集的日平均电输出和围绕该平均值的 +-1 标准误差。但是,就目前而言,我得到一个均值图,然后是每年 1 个图(即 8 个单独的图)。我正在尝试在 Pandas 中执行此操作,但在 NumPy 或 Pandas 中的帮助会很棒。
我的数据集和当前代码如下:
# Dummy data since the actual file is very large.
dates = pd.date_range(start='01-01-1990',end='12-31-2015',freq='D')
vols = np.random.random_integers(0,60000,9496)
full = np.array([dates,vols]).T
yrs = [1990,1994,1998,2002,2006,2010,2014]
mons = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
data = pd.DataFrame(full,names=['date','elec'])
data['yr'] = pd.DatetimeIndex(data['date']).year
data['mon'] = pd.DatetimeIndex(data['date']).month
data['day'] = pd.DatetimeIndex(data['date']).day
mean = data.groupby(['mon','day']).mean().reset_index()
std = data.groupby(['mon','day']).std().reset_index()
power = data[data['yr'].isin(yrs)]
pwryear = power.groupby('yr')
fig, ax1 = plt.subplots(figsize = (14,5))
ax1.plot(mean.elec,'k-',lw=4)
pwryear.plot()
ax1.set_title('Merrimack River floods at Lowell, MA')
ax1.set_ylabel('Discharge [m$^{3}$ s$^{-1}$]')
ax1.set_xticks([0,30,59,90,120,151,181,212,243,273,304,334])
ax1.set_xticklabels(mons)
ax1.set_xlim(0,365)
ax1.grid()
ax1.legend(loc=2)
【问题讨论】:
标签: python numpy pandas matplotlib plot