我有这段代码可以很好地绘制我的 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,我在下面尝试了,没有太大的变化。
轴具有 (2,3) 形状,我无法将正确的参数传递到最后一行 ax=axes. 理想情况下,我应该有类似 ax = axes[x][y] 的东西,其中 (x,y) 在 [(0,0), (0,1), (0,2), (1,0), (1 ,1), (1,2)] 因此具有精确的轴形状,但我只能通过枚举来获取“索引”列表......
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])