我有包含9个数据帧的字典。我想为每个数据框创建一个3,3子图并绘制条形图。
要绘制一个图,我会这样做(只是一个不考虑子图的图),
%matplotlib inline
with plt.style.context('bmh'):
famd = satFAMD_obj['MODIS.NDVI']
df_norm = satFAMD_dfNorm['MODIS.NDVI']
df_cor =famd.column_correlations(df_norm)
df_cor.columns = ['component 1','component 2', 'component 3']
df_cor.plot(kind = 'bar',cmap = 'Set1', figsize = (10,6))
plt.show()
其中satFAMD_obj
和satFAMD_dfNorm
是两个字典,其中包含经过因素分析训练的对象和一个数据框。在下一行中,我创建一个名为df_cor
的新数据框,然后使用此行df_cor.plot(kind = 'bar',cmap = 'Set1', figsize = (10,6))
对其进行绘制。
现在我的问题是当涉及到多个子图时,我该怎么做? 我不能简单地做到这一点,
fig,ax = plt.subplots(3,3, figsize = (12,8))
ax[0,0].df_cor.plot(kind = 'bar',cmap = 'Set1')
有什么想法吗?
答案 0 :(得分:1)
我想您的两个字典中的所有键都需要绘制。
您将:
使用类似以下示例的代码:
fig,ax = plt.subplots(3,3, figsize = (12,8))
for k1,k2 in zip(satFAMD_obj.keys(),satFAMD_dfNorm.keys()):
for axes in ax.flatten():
famd = satFAMD_obj[k1]
df_norm = satFAMD_dfNorm[k2]
df_cor = famd.column_correlations(df_norm)
df_cor.columns = ['component 1','component 2', 'component 3']
df_cor.plot(kind = 'bar',cmap = 'Set1',ax=axes)
# ^^^^^^^