如何调整泰坦尼克号生存率分析柱状图的X轴至自定义年龄区间
解决方案:泰坦尼克号数据按自定义年龄区间分组绘制生存率柱状图
嘿,我来帮你搞定这个自定义年龄区间的分组绘图需求!你需要用pandas的pd.cut()函数把连续的年龄值划分成你想要的离散区间,之后再按这个区间分组计算生存率就可以了。
完整修改后的代码
import pandas as pd import matplotlib.pyplot as plt # 读取训练数据 df_train = pd.read_csv('../input/titanic/train.csv') # 定义自定义年龄区间和对应的标签 age_bins = [0, 20, 40, 60, 80] age_labels = ['20岁以下', '20-40岁', '40-60岁', '60-80岁'] # 给数据添加新的年龄区间列 df_train['Age_Group'] = pd.cut(df_train['Age'], bins=age_bins, labels=age_labels, right=False) # 按年龄区间分组计算平均生存率,然后绘制柱状图 df_train.groupby('Age_Group')['Survived'].mean().plot.bar(rot=0, title='不同年龄区间的生存率', edgecolor="k") plt.ylabel('生存率') plt.show()
关键步骤解释
pd.cut()的作用:这个函数专门用来把连续数值切分成离散区间。这里设置right=False,表示区间是左闭右开的(比如[0,20)对应“20岁以下”,刚好契合你的需求)。- 自定义区间与标签:
age_bins定义了区间的分界点,age_labels是每个区间对应的显示名称,这样X轴就会显示你想要的文字标签,而非生硬的数值区间。 - 分组绘图:用新生成的
Age_Group列分组,计算每个区间的平均生存率,之后调用plot.bar()绘制柱状图,rot=0能让X轴标签保持水平,避免重叠。
这样修改后,你就能得到X轴为自定义年龄区间、Y轴为对应生存率的柱状图啦!
内容的提问来源于stack exchange,提问作者Giseok Ryu
相关产品推荐
相关产品推荐

