我正在Kaggle上处理一个流行的泰坦尼克号数据集,我想创建一个条形图,显示幸存者与死亡人数的对比。死亡的性别在x轴上,我想要性别(男性/女性)。我想把幸存者和死者用颜色分类。
下面是我当前的代码,它为男性/幸存者,男性/死亡者,女性/幸存者,女性/死亡者的每个组合生成四个条形图:
import pandas as pd
import seaborn as sns # for the data
df = sns.load_dataset('titanic').loc[:, ['sex', 'survived']]
df.groupby('sex').survived.value_counts().plot(kind='bar', color=['C0', 'C1'], stacked=True)
3条答案
按热度按时间0h4hbjxa1#
pandas.DataFrame.pivot_table
重新塑造DataFrame,然后使用指定kind='bar'
和stacked=True
的pandas.DataFrame.plot
绘图。.pivot_table
,否则使用.pivot
。pandas v1.2.4
和matplotlib v3.3.4
(matplotlib
由pandas
作为依赖项导入)。sqserrrh2#
通过一些示例数据,我相信这就是你正在寻找的,使用
matplotlib
:这是输出:
bkhjykvo3#
对于这种复杂的图,尤其是DataFrames,我更喜欢使用plotly,因为输出更具交互性。我没有使用组操作,因为逻辑索引可以完成这个任务。
最后,由于堆叠直方图的性质,您只能表示死者,因为幸存者将是左侧区域。如果你想用不同的颜色来表示它们,请随意发表评论。
希望它能解决你的问题!