Python I';我试图使用pandas为数据框中的5个分类变量创建单独的条形图

Python I';我试图使用pandas为数据框中的5个分类变量创建单独的条形图,python,pandas,Python,Pandas,我有一个包含4列数据的数据框。这些列中的每一列都是一个字符变量,包含5个不同的值(即第1列包含值a、B、C、D或e)。第2列包含值优秀、非常好、良好、平均和较差。第3列和第4列类似 我正在尝试使用下面的for循环为每列获取单独的条形图。不幸的是,它只为我提供了第4列的条形图。它不提供前3列的条形图。不确定我做错了什么 categorical\u attribs=list(CharacterVarDF) 对于分类属性中的i: CharacterVarDF[i].值\计数().绘图(kind='ba

我有一个包含4列数据的数据框。这些列中的每一列都是一个字符变量,包含5个不同的值(即第1列包含值a、B、C、D或e)。第2列包含值优秀、非常好、良好、平均和较差。第3列和第4列类似

我正在尝试使用下面的for循环为每列获取单独的条形图。不幸的是,它只为我提供了第4列的条形图。它不提供前3列的条形图。不确定我做错了什么

categorical\u attribs=list(CharacterVarDF)
对于分类属性中的i:
CharacterVarDF[i].值\计数().绘图(kind='bar')

只需使用行数和列数设置matplotlib子绘图。然后在循环中,将每个列条形图分配给每个
ax

导入matplotlib.pyplot作为plt
...
图,轴=plt.子批次(图大小=(8,6),ncols=1,nrows=CharacterVarDF.shape[1])
对于列,ax在zip中(CharacterVarDF.columns,np.ravel(axes)):
CharacterVarDF[col].value_counts().plot(kind='bar',ax=ax,rot=0,title=col)
plt.紧_布局()
plt.show()
要用随机数据演示:

将numpy导入为np
作为pd进口熊猫
从matplotlib导入rc
将matplotlib.pyplot作为plt导入
np.随机种子(52021)
env_df=pd.DataFrame({
“行星边界”:np.random.choice(
[“海洋”、“陆地”、“生物圈”、“大气层”,
“气候”、“土壤”、“臭氧”、“淡水”]、50),
“物种”:np.随机选择(
[“无脊椎动物”、“脊椎动物”、“植物”、“真菌和原生生物”],50),
“临界点”:np.random.choice(
[“北极海冰”、“格陵兰冰原”、“南极洲西部冰原”,
“亚马逊雨林”、“北方森林”、“印度季风”,
“大西洋经向翻转环流”,
“西非季风”、“珊瑚礁”]、50)
})
rc('font',**{'family':'Arial'})
图,轴=plt.子批次(ncols=1,nrows=env_df.形状[1],图尺寸=(7,7))
对于柱,轴在zip中(env_df.columns,np.ravel(轴)):
env_-df[col]=env_-df[col].str.replace(“,”\n”)
env_df[col]。值_计数(sort=False)。排序_索引()。绘图(
种类='bar',ax=ax,颜色='g',rot=0,
title=col.replace(““,”).title(),
)
plt.紧_布局()
plt.show()
plt.clf()
plt.close()