泰坦尼克号入门竞赛-数据可视化

第二章 数据可视化

项目源码地址:https://github.com/datawhalechina/hands-on-data-analysis

前期准备

#库的导入
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

#数据载入
df = pd.read_csv('result.csv')

2.7.1导引

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

折线图
适合用于可视化某个属性值随着时间、数量等变化的趋势。例如,我们可以通过折线图来展示某个城市某天的温度变化,或者某股票价格随时间变化的趋势等。在这里插入图片描述

柱状图
适合用于比较不同类别的属性值之间的差异。例如,我们可以通过柱状图来比较不同产品、不同地区或不同年份的销售情况、收益情况或其他相关指标。
在这里插入图片描述

散点图
适合用于可视化两个属性之间的关系。例如,我们可以通过散点图来展示身高与体重之间的关系、某产品价格与销量之间的关系等。
在这里插入图片描述

饼图
适合用于可视化各类别所占比例。例如,我们可以通过饼图来展示不同产品在销售总额中所占的比例,或者某个国家在全球经济体系中的占比等。
在这里插入图片描述

热力图
适合用于可视化二维表格中不同数值的差异。例如,我们可以通过热力图来展示不同国家在不同年份的 GDP 值,其中颜色的深浅代表 GDP 的大小。
在这里插入图片描述

2.7.2使用柱状图

1.展示泰坦尼克号数据集中男女中生存人数分布情况

sex = df.groupby('Sex')['Survived'].sum()#以性别进行分组,统计存活人数
sex.plot.bar()#进行柱状图展示
plt.title('survived_count')#标题设置
plt.show()

在这里插入图片描述
2.展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图

df.groupby(['Sex','Survived'])['Survived'].count().unstack().plot(kind='bar',stacked='True')
#按照'Sex'和'Survived'两列进行分组,然后计算每个组中'Survived'列的数量
#unstack()函数是将分组后的结果进行重塑,使得每个组内的值成为新的列
#选择绘制堆叠柱形图
plt.title('survived_count')#标题设置
plt.ylabel('count')#y轴标签设置

在这里插入图片描述3.展示泰坦尼克号数据集中不同仓位等级的人生存和死亡人员的分布情况

pclass_sur = df.groupby(['Pclass'])['Survived'].value_counts()
#按照仓位等级进行分组,计算每个不同值有在该列中的个数
sns.countplot(x="Pclass",hue="Survived",data=df)
#用于绘制分类计数图,x为要可视化的分类变量,hue为指定分组的变量,data为数据来源

在这里插入图片描述

2.7.3使用折线图

1.展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况

fare = df.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)
#按票价进行分组,统计生存和死亡人数,并进行降序排序
fig = plt.figure(figsize=(20, 18))#设置画布大小
fare.plot(grid=True)#使用plot方法绘制折线图,并添加网格
plt.legend()#设置图例
plt.show()

在这里插入图片描述

2.7.4使用核密度图

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

pclass = df.groupby('Pclass')['Age'].value_counts()
df.Age[df.Pclass == 1].plot(kind='kde')
df.Age[df.Pclass == 2].plot(kind='kde')
df.Age[df.Pclass == 3].plot(kind='kde')
#筛选出Pclass列值为?的所有行,然后绘制这些行的Age列的核密度估计图(Kernel Density Estimate, KDE)。
plt.xlabel('age')#x轴标签设置为age
plt.legend((1,2,3),loc='best')#添加图例,自动选择最佳位置放置图例

在这里插入图片描述
2.可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况

facet = sns.FacetGrid(df, hue="Survived",aspect=3)
#创建了一个FacetGrid对象,命名为facet,使用df作为数据源,并根据"Survived"列进行分组。
facet.map(sns.kdeplot,'Age',shade= True)
#绘制了年龄('Age')的核密度估计图,并设置了阴影效果。
facet.set(xlim=(0, text['Age'].max()))
#设置了x轴的范围为0到text['Age'].max(),即年龄的最大值
facet.add_legend()#添加图例

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值