数据可视化 —— 泰坦尼克任务

第二章:数据可视化

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

#导入numpy、pandas以及matplotlib包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 导入数据(result.csv这个文件)
df = pd.read_csv(r'result.csv')
df.head()

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

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

import pandas as pd
import numpy as np
import matplotlib.pyplot as pltdata = pd.Series(np.random.randn(1000),index=np.arange(1000)) # 生成随机数据
data =data.cumsum() # 进行数据的累加
data.plot()  # 绘图
plt.show()   # 展示

在这里插入图片描述

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

散点图:用于发现各变量之间的关系。
柱状图:展示多个分类的数据变化和同类别各变量之间的比较情况。
条形图:展示多个分类的数据变化和同类别各变量之间的比较情况。
折线图:展示数据随时间或有序类别的波动情况的趋势变化。
饼图:用来展示各类别占比,比如男女比例。
热力图:以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。
箱型图:用来展示一组数据分散情况,特别用于对几个样本的比较。
词云图: 展现文本信息,对出现频率较高的“关键词”予以视觉上的突出,比如用户画像的标签。
雷达图:将多个分类的数据量映射到坐标轴上,对比某项目不同属性的特点。
漏斗图:用梯形面积表示某个环节业务量与上一个环节之间的差异,可以直观地显示转化率和流失率。

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

# 可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)
# 分组用 groupby   计算用 sum
sex = df.groupby('Sex')['Survived'].sum()
sex
sex.plot.bar() #  柱状图

在这里插入图片描述

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

# 可视化展示泰坦尼克号数据集中男女死亡人数分布情况(用柱状图试试)
df.groupby(['Sex','Survived'])['Survived'].count()
sex_survived = df.groupby(['Sex','Survived'])['Survived'].count().unstack()  # 旋转一下
sex_survived
died = sex_survived[0]
died.plot.bar()
plt.title('died')  # 添加标题

在这里插入图片描述

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

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

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

在这里插入图片描述

# 更直观的观察
sex_survived.plot(kind='bar',stacked='True')  # 将两个柱状重叠起来

在这里插入图片描述

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

# 可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况。(用折线图试试)
fare = df.groupby(['Fare','Survived'])['Survived'].count().unstack()
fare
fare.plot() # plot() 默认是折线图

在这里插入图片描述

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

1表示生存,0表示死亡

# 可视化展示泰坦尼克号数据集中不同仓位等级的人生存和死亡人员的分布情况。(用柱状图试试)
pclass = df.groupby(['Pclass','Survived'])['Survived'].count().unstack()
pclass
pclass.plot.bar()

在这里插入图片描述
【思考】看到这个前面几个数据可视化,说说你的第一感受和你的总结
【思考回答】
低票价死亡人数多,死亡概率大;
头等舱存活人数较多,存活率高,三等舱存活人数较少,存活率低。

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

# 可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况。(不限表达方式)
df.Age[df.Survived == 0]  # 死亡人群的年龄分布
df.Age[df.Survived == 0].hist(bins = 5) # 死亡人群的年龄分布 把年龄分成五段
df.Age[df.Survived == 1].hist(bins = 5) # 生存人群的年龄分布 把年龄分成五段

在这里插入图片描述

# 样式一
# 更改颜色透明度
df.Age[df.Survived == 0].hist(bins = 5,alpha = 0.5)
df.Age[df.Survived == 1].hist(bins = 5,alpha = 0.5)
# 添加图例
plt.legend((0,1))
# 添加横坐标标签
plt.xlabel('age')
# 添加纵坐标标签
plt.ylabel('count')

在这里插入图片描述

# 样式二
# 更改颜色透明度  +  根据密度改变布局
df.Age[df.Survived == 0].hist(bins = 5,alpha = 0.5,density=1)
df.Age[df.Survived == 1].hist(bins = 5,alpha = 0.5,density=1)
# 添加密度曲线
df.Age[df.Survived == 0].plot.density()
df.Age[df.Survived == 1].plot.density()
# 添加图例
plt.legend((0,1))
# 添加横坐标标签
plt.xlabel('age')
# 添加纵坐标标签
plt.ylabel(',density')

在这里插入图片描述

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

# 可视化展示泰坦尼克号数据集中不同仓位等级的人年龄分布情况。(用折线图试试)
df.Age[df.Pclass == 1].plot.density()
unique_pclass = df.Pclass.unique()# 将舱位等级存取下来
unique_pclass.sort() # 排序
unique_pclass# 针对于每一个不同的舱位等级 都去绘制一条折线与其对应
for i in unique_pclass:df.Age[df.Pclass == i].plot.density()
# 添加图例
plt.legend(unique_pclass)
# 添加标签
plt.xlabel('age')

在这里插入图片描述

# 样式二
# 加载新的库
import seaborn as sns
for i in unique_pclass:sns.kdeplot(df.Age[df.Pclass == i],shade =True,linewidth=0)

在这里插入图片描述

【思考】上面所有可视化的例子做一个总体的分析
【思考回答】
一般年龄较小的集中在头等舱,年龄较大的集中在三等舱;并且年龄小的存活概率较大,反之,年龄大的存活概率较小。

总结

本章节学会了利用可视化工具对处理过后的数据进行绘图,重点掌握并绘制柱状图与折线图。可以深刻地认识到数据可视化,能够更快更便捷更直观地通过简单浏览,从而获取更多详细信息,突显其巨大优势。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部