我有这样的代码,可以在1行6列中很好地绘制我的图表,但尝试将其绘制在2x3或3x2中却失败了。在pandas的.plot()实现中是否有我忽略的东西?
fig, axes = plt.subplots(nrows=1, ncols=6)
spfvL = [6, 11, 22, 33, 44, 55]
for j, i in enumerate(spfvL):
df['spfv' + str(i)] = pd.rolling_std(df['r VIX'], i)*np.sqrt(252)
res = smf.ols(formula='spfv'+ str(i)+' ~ Q(\'VIX Index\')', data=df).fit()
df['pred'+ str(i)] = better_predict(res, df)
df.loc[:,['pred' + str(i), 'spfv' + str(i)]].plot(ax=axes[j])
编辑:尝试下面的方法可以获得2x3,但是变化不大。
axes的形状为(2,3),我无法将正确的参数传递到最后一行ax=axes中。 理想情况下,我应该有类似于ax = axes[x][y]的东西,其中(x,y)在[(0,0),(0,1),(0,2),(1,0),(1,1),(1,2)]中,从而具有与axes完全相同的形状,但是仅仅使用enumerate就能够获得那个“索引”列表...
fig, axes = plt.subplots(nrows=2, ncols=3)
spfvL = [6, 11, 22, 33, 44, 55]
for j, i in enumerate(spfvL):
df['spfv' + str(i)] = pd.rolling_std(df['r VIX'], i)*np.sqrt(252)
res = smf.ols(formula='spfv'+ str(i)+' ~ Q(\'VIX Index\')', data=df).fit()
df['pred'+ str(i)] = better_predict(res, df)
df.loc[:,['pred' + str(i), 'spfv' + str(i)]].plot(ax=axes[j])