【发布时间】:2017-02-26 18:51:47
【问题描述】:
具体来说,我正在处理 Kaggle Titanic 数据集。我绘制了一个堆叠直方图,显示了在泰坦尼克号上幸存和死亡的年龄。代码如下。
figure = plt.figure(figsize=(15,8))
plt.hist([data[data['Survived']==1]['Age'], data[data['Survived']==0]['Age']], stacked=True, bins=30, label=['Survived','Dead'])
plt.xlabel('Age')
plt.ylabel('Number of passengers')
plt.legend()
我想更改图表以显示该年龄组中幸存百分比的每个箱子的单个图表。例如。如果一个垃圾箱包含 10 到 20 岁之间的年龄,并且该年龄段泰坦尼克号上 60% 的人幸存下来,那么高度将沿 y 轴排列 60%。
编辑:我可能对我正在寻找的东西给出了一个糟糕的解释。我希望根据幸存的百分比来更改条形的实际形状,而不是更改 y 轴值。
图表上的第一个分类显示该年龄组中大约有 65% 的人幸存下来。我希望这个 bin 在 65% 处与 y 轴对齐。以下 bin 看起来分别为 90%、50%、10%,依此类推。
图表最终会看起来像这样:
【问题讨论】:
-
Dexplot 库能够创建百分比堆积条形图。见my answer below。
标签: python pandas matplotlib dataset histogram