首页 > 解决方案 > Python:如何使用泰坦尼克数据集创建堆叠图

问题描述

我是 Python 新手,正在使用 Titanic Dataset 使用 for 循环创建堆叠图。谁能建议我如何从条形转换为堆叠?下面的代码应该改变什么选项?

df.drop(["name","ticket","cabin","boat","body","home.dest"], axis=1,inplace=True)

df.embarked = df.embarked.fillna(df.embarked.mode()[0])

es_grp1=df.groupby(['embarked','survived'])

for i in es_grp1.groups.keys():
    plt.bar(str(i),es_grp1.get_group(i).embarked.size)
    plt.text(str(i),es_grp1.get_group(i).embarked.size,es_grp1.get_group(i).embarked.size)

plt.show()

在此处输入图像描述

标签: pythonpandas

解决方案


如果不确切了解您的数据的结构,很难判断,但根据我提供的链接,这应该可以。如果您可以显示数据的实际外观,那么这可能会更清楚。

df.drop(["name","ticket","cabin","boat","body","home.dest"], axis=1,inplace=True)

df.embarked = df.embarked.fillna(df.embarked.mode()[0])

es_grp1=df.groupby(['embarked','survived'])
value_sum = 0
for i in es_grp1.groups.keys():
    plt.bar(0,es_grp1.get_group(i).embarked.size, bottom=value_sum)
    value_sum += es_grp1.get_group(i).embarked.size
    plt.text(str(i),es_grp1.get_group(i).embarked.size,es_grp1.get_group(i).embarked.size)

plt.show()

推荐阅读