数据可视化Titanic数据可视化
Posted 数据智农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化Titanic数据可视化相关的知识,希望对你有一定的参考价值。
Titanic数据可视化
一、引入包,测试集、训练集
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
train=pd.read_csv('C:/kaggle/Titanic/train.csv')
test=pd.read_csv('C:/kaggle/Titanic/test.csv')
二、相关性分析
(1)程序
data=train[['Survived','Pclass','Age','SibSp','Parch','Fare','Sex']]
data=data.corr()
print(data)
sns.heatmap(data)
plt.title('train corr')
plt.show()
(2)分析结果:
从上图可以了解到颜色越深代表两个属性之间的相关性越高,结果显示,座舱等级与费用之间的相关性很强,座舱登记与生存人数之间的相关性同样很高。相反,年龄与费用、上船入口之间的相关性则比较弱。
三、对不同仓位逃生数据分析并绘图
(1)程序:
data=train[['Pclass','Survived']]
y_live=data[data.Survived==1].groupby('Pclass')['Survived'].count()
y_dead=data[data.Survived==0].groupby('Pclass')['Survived'].count()
pos=range(1,4)
defination=['class%d'%(i) for i in range(1,4)]
plt.bar(pos,y_live,label='live')
plt.bar(pos,y_dead,bottom=y_live,label='dead')
plt.legend()
plt.xticks(pos,defination)
plt.title('Pclass Surveved count')
plt.show()
(2)分析结果:
从这张图中可以看出高等舱获救的人最多,获救机会跟个人财力是有关系的。一等舱的乘客获救比例最高,与此同时三等舱的乘客绝大多数都遇难,生存比例很低。
四、性别分析
(1)程序:
data=train[['Sex','Survived']]
y_male=[0,0]
y_female=[0,0]
for i in range(len(data.Sex)):
if data.Sex[i]=='male':
if data.Survived[i]==0:
y_male[0]+=1
else:
y_male[1]+=1
else:
if data.Survived[i]==0:
y_female[0]+=1
else:
y_female[1]+=1
x_number=range(1,3)
x_word=['dead','live']
plt.bar(x_number,y_male,label='male')
plt.bar(x_number,y_female,bottom=y_male,label='female')
plt.legend()
plt.xticks(x_number,x_word)
plt.show()
(2)结果分析:
从总体来看,女性获救的机会比男性更大,结合电影与事实情况,我猜想也是遵循了女性优先的原则。结果可以从上图直观的看出,女性的生存概率远远大于男性。
五、票价及生存率分析绘图
5.1性别分析
(1)程序:
fig,axes=plt.subplots(2,3,figsize=(15,8))
full=pd.concat([train,test],ignore_index=True)
Sex1=['male','female']
for i,ax in zip(Sex1,axes):
for j,pp in zip(range(1,4),ax):
PclassSex=full[(full.Sex==i)&(full.Pclass==j)]['Survived'].value_counts().sort_index(ascending=False)
pp.bar(range(len(PclassSex)),PclassSex,label=(i,'Class'+str(j)))
pp.set_xticks((0,1))
pp.set_xticklabels(('Survived','Dead'))
pp.legend(bbox_to_anchor=(0.6,1.1))
(2)分析结果:
从上图可以看出生还人数确实与座舱登记有着密切联系,一等舱的乘客无论是从男性还是从女性的角度看生还人数都是最多的,特别是女性乘客,大多数的一等舱女性乘客都得到了求生的机会。二等舱的生还情况在男女方面出现了较大差异,多数二等舱女性乘客还是得到了生存的机会,而男性乘客的情况则相反。从三等舱的情况来看,虽然还是有很多女性生还,但男性和女性都出现了有大量人员遇难的情况。
5.2整体分析
(1)程序:
data=train[['Fare','Survived']]
sns.distplot(data[data.Survived==1].Fare,hist=False,label='Survived')
sns.distplot(data[data.Survived==0].Fare,hist=False,label='Dead')
plt.title('Fare and Survived distribution')
plt.show()
(2)分析结果:
从船票的角度来看,结果也与上文分析体现了一致性,船票较低的乘客遇难人数最高,生还几率确实与个人财力有很大联系。
六、人际关系分析作图
(1)程序:
data=train[['SibSp','Parch','Survived']]
plt.subplot(211)
sns.countplot(train.SibSp)
plt.subplot(212)
sns.countplot(train.Parch)
plt.suptitle('SibSp and Parch distribution')
plt.show()
plt.subplot(211)
sns.countplot(train[train.Survived==1].SibSp)
plt.xlabel('live')
plt.subplot(212)
sns.countplot(train[train.Survived==0].SibSp)
plt.xlabel('dead')
plt.suptitle('SibSp live and dead')
plt.show()
plt.subplot(211)
sns.countplot(train[train.Survived==1].Parch)
plt.xlabel('live')
plt.subplot(212)
sns.countplot(train[train.Survived==0].Parch)
plt.xlabel('dead')
plt.suptitle('Parch live and dead')
plt.show()
(3)分析结果:
从上图结果可以看出,大部分人其实都没有兄弟姐妹和父母子女陪同,对于兄弟姐妹的生存死亡数量进行分析,兄弟姐妹太多可能会致死,太少也会致死,有一个兄弟姐妹的生还几率稍大些对于父母子女的生存死亡数量进行分析,得到差不多同样的结论,父母子女太多可能会致死,太少也会致死,有一个父母子女的生还几率稍大些。
长按二维码关注
如有任何问题
您可以发送邮件至
dataintellagr@126.com
或关注微博/知乎/微信后台留言
我们期待您的提问!
微博:数据智农
知乎:数据智农
邮箱:dataintellagr@126.com
制作:孟子煜
推荐阅读
以上是关于数据可视化Titanic数据可视化的主要内容,如果未能解决你的问题,请参考以下文章