- 本文为个人复现GitHub项目Hands-on data analysis第二章第四节的练习记录
- 参考教材:《Python for Data Analysis》
- 数据来源 Kaggle-Titanic,Hands-on data analysis
二、数据可视化
《利用Python进行数据分析·第2版》第9章 绘图和可视化
2.7 Matplotlib & Seanborn
导入numpy、pandas以及matplotlib包和数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#加载result.csv这个数据
df = pd.read_csv('./result.csv')
2.7.1 可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)
result = df.groupby('Sex')['Survived'].sum()
result.plot.bar()
plt.title('survived_count')
2.7.2 可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图(用柱状图试试)
df.groupby(['Sex', 'Survived'])['Survived'].count().unstack().plot(kind = 'bar', stacked = 'True')
plt.title('survived_count')
plt.ylabel('count')
2.7.3 可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况。(用折线图试试)(横轴是不同票价,纵轴是存活人数)
- 排序后
fare_sur = df.groupby('Fare')['Survived'].value_counts().sort_values(ascending = False)
fare_sur
fig = plt.figure(figsize=(20, 18)) # 设定 figure 大小
fare_sur.plot(grid=True) # grid = True 显示网格线
plt.legend() # 显示图例
plt.show()
- 排序前
fare_sur1 = df.groupby(['Fare'])['Survived'].value_counts()
fare_sur1
fig = plt.figure(figsize=(20, 18))
fare_sur1.plot(grid=True)
plt.legend()
plt.show()
2.7.4 可视化展示泰坦尼克号数据集中不同仓位等级的人生存和死亡人员的分布情况。(用柱状图试试)
import seaborn as sns
pclass_sur = df.groupby('Pclass')['Survived'].value_counts()
pclass_sur
sns.countplot(x="Pclass", hue="Survived", data=df)
2.7.5 可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况。
facet = sns.FacetGrid(df, hue="Survived",aspect=3) # aspect = 3 即横纵轴比为3
facet.map(sns.kdeplot,'Age',shade= True) # shape = True 即对曲线下面的位置阴影处理
facet.set(xlim=(0, df['Age'].max())) # x 轴起始为0,终值为数据最大值
facet.add_legend()
2.7.6 可视化展示泰坦尼克号数据集中不同仓位等级的人年龄分布情况。
# .plot(kind = 'kde') 为密度图
df.Age[df.Pclass == 1].plot(kind='kde')
df.Age[df.Pclass == 2].plot(kind='kde')
df.Age[df.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")