我想创建一个函数来创建类似变量的子数据帧(通过正则表达式)。接下来,将这些子数据帧中的每一个作为子图绘制在图中的轴上。该函数输出所有子图的图形和轮廓,但未绘制任何数据。
我浏览了网站上的几篇文章,包括“循环中的熊猫子图”和“具有for循环的子图”。我用相似主题搜索的问题有非常不同的问题。
def plot_macro_trend_cycle(df):
fig = plt.figure(figsize=(12,8))
for col,num in zip(df.columns,range(1,len(df.columns)+1)):
df0 =pd.DataFrame(df.filter(regex = '{}'.format(col)), index = df.index)
ax = fig.add_subplot(round((len(df.columns)/2)),2,num)
ax.set_ylabel('{}'.format(col))
ax.set_xlabel('{}'.format(col))
ax.set_title('{}'.format(col), pad=20)
df0.plot(y = [df0.columns[0],df0.columns[1]], linewidth=0.5, ax=ax,legend=None)
plt.tight_layout()
plt.show()
这是我收到的错误的图片。 enter image description here
答案 0 :(得分:0)
您正在df0
循环的每次迭代中定义一个新的for
变量,并且仅在循环之后绘制最后一个df0
数据帧。在循环内缩进df0.plot()
行。