动手学数据分析之数据可视化
数据可视化
# 1.导入所需包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 2.导入文件
text = pd.read_csv(r'result.csv')
text.head() # 查看文件
# 3.可视化展示
## 3.1泰坦尼克号数据集中男女中生存人数分布情况
### 法一
import matplotlib.pyplot as plt
text.groupby(['Sex','Survived'])['Survived'].count().unstack().plot.bar() #以性别分组,分别统计各自死亡与幸存人数
plt.title('survived_count')
plt.show()
### 法二
import seaborn as sns
sns.countplot(x="Sex", hue="Survived", data=text)
plt.title('survived_count')
plt.show()
## 3.2 可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图
import matplotlib.pyplot as plt
text.groupby(['Sex','Survived'])['Survived'].count().unstack().plot.bar(stacked=True) # 多加了一组堆叠
plt.title('survived_count')
plt.show()
## 3.3可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况
# 计算不同票价中生存与死亡人数 1表示生存,0表示死亡
plt.figure(figsize=(20,8))
text.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False).plot(grid=True) # 排序,绘制网格
plt.legend()
plt.title('Fare_Survived')
plt.show()
## 3.4可视化展示泰坦尼克号数据集中不同仓位等级的人年龄分布情况
# kind参数——'line', 'bar', 'barh', 'kde':
# 核密度估计
text.Age[text.Pclass == 1].plot(kind='kde') #可以看到不同舱位的年龄分布
text.Age[text.Pclass == 2].plot(kind='kde')
text.Age[text.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")
从下图可以看出20岁到40岁的人多
## 3.5可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况。(不限表达方式)
# FacetGrid当您想要在数据集的子集中分别可视化变量的分布或多个变量之间的关系时,该类非常有用
# 一个FacetGrid可以与多达三个维度可以得出:row,col,和hue。前两个与得到的轴阵列有明显的对应关系; 将色调变量视为沿深度轴的第三个维度,其中不同的级别用不同的颜色绘制。
# # 在该网格上可视化数据的主要方法是使用该FacetGrid.map()方法。
# 为其提供绘图功能以及要绘制的数据框中的变量名称。让我们使用直方图来
facet = sns.FacetGrid(text, hue="Survived",aspect=3) # 例如:col="sex", hue="smoker",即列表示性别,颜色语意表示是否吸烟,aspect:纵横比,横轴长度和纵轴的比
facet.map(sns.kdeplot,'Age',shade= True)
facet.set(xlim=(0, text['Age'].max())) #set( )通过设置参数可以用来设置背景,调色板等,更加常用。
facet.add_legend()