问题描述
所以我可以像这样单独绘制所有列:
df['cat1'].value_counts().plot.bar()
但我不知道如何在一个漂亮的子图结构中绘制我所有的分类列,所以我不会无休止地滚动。
到目前为止,我的想法可能是遍历我的列并为每个列生成一个图?:
for col in df.describe(include=['O']):
df[col].value_counts().plot.bar()
plt.show()
不确定从那里去哪里。
我很欣赏这可能是一个基本问题,但我已经在谷歌上搜索了太久,无法理解子情节。因此,如果您能提供任何帮助,我将不胜感激!谢谢!
解决方法
您可以创建一个子图数组并传递 plot 命令:
# assuming you have 12 columns:
fig,axes = plt.subplots(nrows=3,ncols=4,figsize=(12,8))
# use `select_dtypes` to filter instead of `describe`
for col,ax in zip(df.select_dtypes(include='O'),axes.ravel()):
df[col].value_counts9).plot.bar(ax=ax)
plt.show()