繁体   English   中英

Python Pandas Seaborn - 带两列的条形图/直方图

[英]Python Pandas Seaborn - bar chart / histogram with two columns

我在熊猫中有下一个数据框-

Perpetrator Perpetrator     Gender
Age         Sex
1    2   Female
2    2   Female
3    3   Female
4    5   Female
5    7   Female
6    7   Female
7    7   Female...

在哪里:

  • 肇事者年龄是指肇事者的年龄
  • 性别是指犯罪者的性别和
  • 犯罪者性别是指该性别的犯罪者数量

例如 - 有 5 名 4 岁的女性肇事者。

我正在尝试制作一个有两个边(列)的 seaborn 条形图 - 一个用于女性,一个用于男性,并查看每个年龄的数量。

尝试使用-

g = sns.catplot(x="Perpetrator Age", y="Perpetrator Sex",col="Gender",
                data=final_df5, saturation=.5,
                kind="bar")

sns.displot(penguins, x="flipper_length_mm", col="sex", multiple="dodge")

(从这里

但似乎没有任何效果。 我不断收到此错误 -

ValueError:无法解释输入“犯罪者年龄”

谢谢

当你尝试时你会得到什么:

print(df.columns)

你希望它看起来像:

Index(['Perpetrator Age', 'Perpetrator Sex', 'Gender'], dtype='object')

但是,看起来您可能拥有分层索引数据。 如果你不这样做,它看起来像上面一样,你可以试试这个 seaborn 绘图代码:

import seaborn as sns

g = sns.catplot(x='Perpetrator Age', y="Perpetrator Sex", hue="Gender",
                data=df,saturation=.5, dodge=True, ci=None,kind="bar")

您需要更改col=hue=在你的代码,并设置dodge=True

随机数据的结果。:

猫图结果

编辑

看起来您的数据框的索引是犯罪者的年龄。 要解决您的问题,请重置索引,然后进行绘图(这次代码绘图是两个单独绘图中的性别):

final_df5. reset_index(inplace=True)

import seaborn as sns

g = sns.catplot(x='Perpetrator Age', y="Perpetrator Sex",
                col='Gender', color='blue',
                data=final_df5, dodge=True,
                ci=None, kind="bar")

结果:

编辑结果图表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM