[英]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.