Pandas 数据可视化

文章介绍了如何使用JoyfulPandas和matplotlib库进行数据可视化,包括直方图、箱线图、折线图、柱状图和饼状图的绘制。通过泰坦尼克号数据集展示了男女生存率、票价与存活人数分布、仓位等级与生存死亡比例等数据的可视化方法,强调了数据可视化的目的是快速直观地理解数据含义。
摘要由CSDN通过智能技术生成


Joyful Pandas

Datawhale社区 Joyful Pandas

基本绘图

一维数据

  • 数值型
    • 直方图 plt.hist()
    • 箱线图 plt.boxplot()
    • 折线图 plt.plot() # 有序数值型
  • 类别型
    • 柱状图 plt.bar()
    • 饼状图 plt.pie()

动手学数据分析

Datawhale社区 动手学数据分析

2 第二章:数据可视化

开始之前,导入numpy、pandas以及matplotlib包和数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#加载result.csv这个数据
df = pd.read_csv('./result.csv')
df.head()
Unnamed: 0PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
00103Braund, Mr. Owen Harrismale22.01.00.0A/5 211717.2500NaNS
11211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.01.00.0PC 1759971.2833C85C
22313Heikkinen, Miss. Lainafemale26.00.00.0STON/O2. 31012827.9250NaNS
33411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01.00.011380353.1000C123S
44503Allen, Mr. William Henrymale35.00.00.03734508.0500NaNS

2.7 如何让人一眼看懂你的数据?

《Python for Data Analysis》第九章

2.7.1 任务一

跟着书本第九章,了解matplotlib,自己创建一个数据项,对其进行基本可视化

【思考】最基本的可视化图案有哪些?分别适用于那些场景?(比如折线图适合可视化某个属性值随时间变化的走势)

该部分参考内容自datawhale开源内容 fantastic-matplotlib

matplotlib提供了两种最常用的绘图接口

  • 显式创建figure和axes,在上面调用绘图方法,也被称为OO模式(object-oriented style)

  • 依赖pyplot自动创建figure和axes,并绘图

fig, ax = plt.subplots()
ax.plot([1,2,3,4], [1,4,2,3])
plt.show()


在这里插入图片描述

plt.plot([1,2,3,4], [1,4,2,3]);


在这里插入图片描述


在jupyter notebook中使用matplotlib时会发现,代码运行后自动打印出类似<matplotlib.lines.Line2D at 0x23155916dc0>这样一段话,这是因为matplotlib的绘图代码默认打印出最后一个对象。如果不想显示这句话,有以下三种方法:

  • 在代码块最后加一个分号;

  • 在代码块最后加一句plt.show()

  • 在绘图时将绘图对象显式赋值给一个变量,如将plt.plot([1, 2, 3, 4]) 改成line =plt.plot([1, 2, 3, 4])


2.7.2 任务二

可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)。

#代码编写
sex_survived = df.groupby('Sex')['Survived'].sum()
_ = plt.bar(sex_survived.index, sex_survived.values)


在这里插入图片描述

【思考】计算出泰坦尼克号数据集中男女中死亡人数,并可视化展示?如何和男女生存人数可视化柱状图结合到一起?看到你的数据可视化,说说你的第一感受(比如:你一眼看出男生存活人数更多,那么性别可能会影响存活率)。

#思考题回答
女性的存活人数远多于男性

2.7.3 任务三

可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图(用柱状图试试)。

#代码编写
# 提示:计算男女中死亡人数 1表示生存,0表示死亡
radio_ss = df.groupby(['Sex','Survived'])['Survived'].count().unstack()
radio_ss
Survived01
Sex
female81233
male468109

索引透视:将行索引转换为列索引,

  • unstack() :默认将行索引最内侧移动到列索引最内层
radio_ss.plot(kind = 'bar', stacked = True);


在这里插入图片描述

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

2.7.4 任务四

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

【提示】对于这种统计性质的且用折线表示的数据,你可以考虑将数据排序或者不排序来分别表示。看看你能发现什么?

#代码编写
# 计算不同票价中生存与死亡人数 1表示生存,0表示死亡
df.groupby(['Fare','Survived'])['Survived'].count().unstack().plot(kind = 'line');


在这里插入图片描述

2.7.5 任务五

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

#代码编写
# 1表示生存,0表示死亡
df.groupby(['Pclass', 'Survived'])['Survived'].count().unstack().plot(kind = 'bar', stacked = True);


在这里插入图片描述

【思考】看到这个前面几个数据可视化,说说你的第一感受和你的总结

#思考题回答

  1. 票价高、头等舱存活概率高
  2. 女性存活概率高
2.7.6 任务六

可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况。(不限表达方式)

#代码编写
df.groupby(['Age','Survived'])['Survived'].count().unstack().plot(kind = 'line');


在这里插入图片描述

2.7.7 任务七

可视化展示泰坦尼克号数据集中不同仓位等级的人年龄分布情况。(用折线图试试)

#代码编写
df.groupby(['Age','Pclass'])['Age'].count().unstack().plot(kind = 'line');


在这里插入图片描述

【思考】上面所有可视化的例子做一个总体的分析,你看看你能不能有自己发现

#思考题回答

  1. 年轻人的存活概率比较高
  2. 中年人也有一定的存活率,结合船舱等级—年龄关系,这部分中年人可能是较为富裕、有一定社会地位,存活率也较高
  3. 在这些人中,女性的存活概率又普遍高于男性

【总结】

对数据可视化有了基本了解,学会了基本图形的绘制。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值