动手学数据分析 Task4

动手学数据分析 Task4

  • 一、可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图
  • 二、可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况
  • 三、可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况

一、可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图

并列柱状图或叠加柱状图都可以很好地展示这道题的结果,方法也类似,只需在参数中设置stack=True或False。

##并列柱状图
train.groupby(['Sex','Survived']) ['Survived'].count().unstack().plot(kind='bar',stacked=False) 
plt.title('survived_count') 
plt.ylabel('count')
plt.show()

##叠加柱状图
train.groupby(['Sex','Survived']) ['Survived'].count().unstack().plot(kind='bar',stacked=True) 
plt.title('survived_count') 
plt.ylabel('count')
plt.show()
动手学数据分析 Task4_第1张图片 动手学数据分析 Task4_第2张图片

从结果可以看出,并列柱状图更能体现出同一性别组内生存和死亡的差异,而叠加柱状图则更好地表现了不同性别之间的对比。

二、可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况

这里我们把不同票价的总人数和存活人数画在一张图中,可以更好地看出生存率的差别。

import matplotlib
import matplotlib.pyplot as plt

#下面两行的作用是让图表可以显示出中文
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family']='sans-serif'

fare_sur = train.groupby(['Fare'])['Survived'].agg(['sum','count'])
fare_sur.rename(columns={'sum':'总人数', 'count':'存活人数'}, inplace = True)
fare_sur.plot(grid=True) 
plt.title('不同票价人数对比') 
plt.show()

动手学数据分析 Task4_第3张图片
可以看出,低票价的总人数非常多,但存活的人却非常少,存活率极低。而票价超过100后,总人数曲线和存活人数曲线走势近乎重合,说明买高票价的人少但他们的存活率较高。

三、可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况

这里尝试一下直方图。

total=train['Age']
survived=train[train['Survived']==1]['Age']
data=pd.concat([total,survived],axis=1)
data.columns=['总人数','存活人数']  

pic=data.plot.hist(bins=8,fontsize=30)  #按年龄分为8组,即每10岁为一组
pic.legend(fontsize=30) 

动手学数据分析 Task4_第4张图片
可以看出,10岁以下组别的存活率是最高的,超过了50%。其他年龄段的存活率都目测都没有超过50%,这与上次task groupby 计算的存活率一致。

你可能感兴趣的:(python,数据分析,数据可视化)