动手学数据分析:数据可视化Task04

1 数据可视化

%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#加载result.csv这个数据
data=pd.read_csv('result.csv')

【思考】最基本的可视化图案有哪些?分别适用于那些场景?

1)折线图:适合属性值随连续自变量变化的走势。

2)柱状图:适合离散的特征值,利用value_counts图形化显示Series中各值的频数

3)直方图和密度图:适合数值型,可以直观的体现特征变量的分布情况。

4)热图和散点图:可以看出仓位等级与生存情况的关系最大。票价与生存情况的关系也比较大。

5)饼图:饼图能够直观显示分类数据的占比情况(占比)

用柱状图展示泰坦尼克号数据集中男女中生存人数的分布

sex = data.groupby('Sex')['Survived'].sum()
print(sex)
sex.plot.bar()
plt.title('survived_count')
plt.show()
Sex
female    233
male      109
Name: Survived, dtype: int64

在这里插入图片描述

sex.plot.barh()
plt.title('survived_count')
plt.show()

在这里插入图片描述

用柱状图展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图

#计算男女中死亡人数 1表示生存,0表示死亡

#count() 方法用于统计字符串里某个字符出现的次数

sex=data.groupby(['Sex','Survived'])['Survived'].count()
sex
Sex     Survived
female  0            81
        1           233
male    0           468
        1           109
Name: Survived, dtype: int64
#unstack:将数据的行索引转换为列索引

sex.unstack()
Survived01
Sex
female81233
male468109
#数据可视化
sex.unstack().plot.bar(stacked='True')  
plt.show()

在这里插入图片描述

【提示】男女这两个数据轴,存活和死亡人数按比例用柱状图表示

用折线图展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况,横轴是不同票价,纵轴是存活人数

# 计算不同票价中生存与死亡人数 1表示生存,0表示死亡

#value_counts()查看表格某列中有多少个不同值的方法,并计算每个不同值有在该列中有多少重复值。
fare_sur = data.groupby(['Fare'])['Survived'].value_counts()
fare_sur.head(20)
Fare    Survived
0.0000  0           14
        1            1
4.0125  0            1
5.0000  0            1
6.2375  0            1
6.4375  0            1
6.4500  0            1
6.4958  0            2
6.7500  0            2
6.8583  0            1
6.9500  0            1
6.9750  0            1
        1            1
7.0458  0            1
7.0500  0            7
7.0542  0            2
7.1250  0            4
7.1417  1            1
7.2250  0            9
        1            3
Name: Survived, dtype: int64
#可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。

"""
by           指定列名(axis=0或’index’)或索引值(axis=1或’columns’)
axis         若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’
            ,则按照指定索引中数据大小排序,默认axis=0

ascending    是否按指定列的数组升序排列,默认为True,即升序排列
inplace      是否用排序后的数据集替换原来的数据,默认为False,即不替换
na_position  {‘first’,‘last’},设定缺失值的显示位置
"""

fare_sur=fare_sur.sort_values(ascending=False)

fig = plt.figure(figsize=(20, 18))
fare_sur.plot(grid=True)
plt.legend()
plt.show()

在这里插入图片描述

# 未排序
fare_sur1 = data.groupby(['Fare'])['Survived'].value_counts()

fig = plt.figure(figsize=(20, 18))
fare_sur1.plot(grid=True)
plt.legend()
plt.show()

在这里插入图片描述

柱状图展示泰坦尼克号数据集中不同仓位等级的人生存和死亡人员的分布情况

# 1表示生存,0表示死亡
#unstack:将数据的行索引转换为列索引

#value_counts()查看表格某列中有多少个不同值的方法,并计算每个不同值有在该列中有多少重复值。

pclass_sur = data.groupby(['Pclass'])['Survived'].value_counts().unstack()
pclass_sur.plot.bar()
<AxesSubplot:xlabel='Pclass'>

在这里插入图片描述

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

data.Age[data.Survived==0].plot(kind='kde')  #'kde'密度图
data.Age[data.Survived==1].plot(kind='kde')
plt.xlabel("age")
plt.legend((0,1),loc="best")
<matplotlib.legend.Legend at 0x2b732fd7100>

在这里插入图片描述

用密度图展示泰坦尼克号数据集中不同仓位等级的人年龄分布情况

data.Age[data.Pclass == 1].plot(kind='kde')   #'kde'密度图
data.Age[data.Pclass == 2].plot(kind='kde')
data.Age[data.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")
<matplotlib.legend.Legend at 0x2b71d694430>

在这里插入图片描述

本文主要学习来源:[datawhale](https://github.com/datawhalechina/hands-on-data-analysis)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值