1、柱状图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
results=pd.read_csv('titanic/data/result.csv')
sex=results.groupby('Sex')['Survived'].sum()
sex.plot.bar()
plt.title('Survived_count')
plt.show()
从上图看,女性存活率远高于男性。
2、堆积柱状图
# 1:生存 0:死亡
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
results=pd.read_csv('titanic/data/result.csv')
results.groupby(['Sex','Survived'])['Survived'].count().unstack().plot(kind='bar',stacked=True)
plt.title('Survived_count')
plt.ylabel('count')
plt.show()
从上图看,船上男性人数几乎是女性的2倍,但存活下来的女性几乎是男性的两倍,男性存活率远低于女性存活率。
3、折线图
# 排序
a=results.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)
fig = plt.figure(figsize=(10, 9))
a.plot(grid=True)
plt.legend()
plt.show()
# 不做排序
a=results.groupby(['Fare'])['Survived'].value_counts()
fig = plt.figure(figsize=(10, 9))
a.plot(grid=True)
plt.legend()
plt.show()
4、探索不同舱位等级和生存之间的关系
# 1:生存,0:死亡
import seaborn as sns
pclass_sur = results.groupby(['Pclass'])['Survived'].value_counts()
fig = plt.figure(figsize=(10, 9))
sns.countplot(x="Pclass", hue="Survived", data=results)
plt.show()
从上图看出,舱位等级3的死亡人数最多,存活率最低。
5、探索年龄和生存之间的关系
# 1:生存,0:死亡
age_sur = sns.FacetGrid(results, hue="Survived",aspect=3)
age_sur.map(sns.kdeplot,'Age',shade= True)
age_sur.set(xlim=(0, results['Age'].max()))
age_sur.add_legend()
从上图看出,
①年龄大概在12岁以前,生存人数高于死亡人数;
②年龄大概在12岁到30岁之间时,死亡人数高于生存人数,可能是青年把存活机会让给小孩;也可能是这个年龄段的男性较多,待进一步验证;
③年龄大概在30岁到40岁之间时,生存人数高于死亡人数,可能是这个年龄端的女性较多,待进一步验证;
④年龄大概在40岁到50岁之间时,死亡人数高于生存人数,可能是这个年龄端的男性较多,待进一步验证;
⑤年龄大概在50岁到58岁之间时,生存人数高于死亡人数,可能是这个年龄端的女性较多,待进一步验证;
⑥年龄大概在58岁以后,死亡人数高于生存人数,可能是老年人本就不易在灾难中存活,还可能是老年人把存活机会让给小孩;
6、探索仓位等级和年龄之间的关系
results.Age[results.Pclass == 1].plot(kind='kde')
results.Age[results.Pclass == 2].plot(kind='kde')
results.Age[results.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")