当前位置: 首页 > news >正文

【数据可视化-38】基于Plotly得泰坦尼克号数据集的多维度可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-38】基于Plotly得泰坦尼克号数据集的多维度可视化分析

    • 一、引言
    • 二、数据探索
      • 2.1 数据集介绍
      • 2.2 数据清洗探索
    • 三、单维度特征可视化
      • 3.1 生存情况饼状图
      • 3.2 客舱等级柱状图
      • 3.3 年龄分布直方图
      • 3.4 票价分布箱线图
    • 四、各个特征与生存关系的可视化
      • 4.1 性别与生存关系的柱状图
      • 4.3 年龄与生存关系的散点图
      • 4.4 登船港口与生存关系的饼状图组合
      • 4.5 家庭成员数量与生存关系的组合图
    • 五、多变量综合分析
      • 5.1 性别、客舱等级与生存关系的三维散点图
      • 5.2 年龄组、客舱等级与生存关系的热力图
      • 5.3 性别、客舱等级与年龄的交互式箱线图

一、引言

  泰坦尼克号沉船事件一直以来都是数据分析和机器学习领域的重要研究对象。本文将利用泰坦尼克号数据集,通过 Plotly 库实现多样化的可视化分析,深入探讨影响乘客生存率的各类因素以及变量间的关系。从单维度特征到多维度交叉分析,以下内容包含完整可运行的 Python 代码,助力读者清晰了解数据背后的真相,为相关研究和模型构建奠定基础。

二、数据探索

2.1 数据集介绍

  泰坦尼克号数据集包含以下变量:

特征名称描述
PassengerId乘客编号
Survived0 = 湍亡,1 = 生存
Pclass客舱等级(1 = 一等舱,2 = 二等舱,3 = 三等舱)
Name乘客姓名
Sex性别
Age年龄
SibSp兄弟姐妹 / 配偶数量
Parch父母 / 子女数量
Ticket票号
Fare票价
Cabin客舱
Embarked登船港口(C = 樱堡,Q = 女王镇,S = 南安普顿)

2.2 数据清洗探索

import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots# 加载数据
df = pd.read_csv('titanic.csv')  # 请替换为实际文件路径# 查看数据维度
df.shape
# 查看数据基本信息
print(df.info())
# 查看数据维度缺失值
df.isnull().sum()

  从数据基本信息可发现:

  • 数据共 418 条样本,部分特征存在缺失值,如 Age、Cabin。
  • 各特征数据类型各异,包括整数、浮点数和对象类型。

三、单维度特征可视化

3.1 生存情况饼状图

# 生存情况统计
survived_counts = df['Survived'].value_counts()# 绘制饼状图
fig = px.pie(survived_counts, values=survived_counts.values, names=['Dead', 'Alive'], title='Survival Distribution')
fig.show()


  从上图可以发现,数据中死亡的人数对生还得人数,死亡的人数占总人数得63.6%;

3.2 客舱等级柱状图

# 客舱等级分布
pclass_counts = df['Pclass'].value_counts().sort_index()# 绘制柱状图
fig = px.bar(x=pclass_counts.index, y=pclass_counts.values, labels={'x': 'Class', 'y': 'Count'}, title='Class Distribution')
fig.show()

  从上图可以发现,客舱一共分为3个等级,其中等级为3得客舱人数最多;

3.3 年龄分布直方图

fig = px.histogram(df, x='Age', nbins=40, title='Age Distribution', labels={'Age': 'Age'})
fig.show()

  从上图可以发现,年龄得分布近似符合偏左得正态分布,年龄大多数在20-30岁之间,我们还可以发现年龄存在一定得异常值情况;

3.4 票价分布箱线图

fig = px.box(df, y='Fare', title='Fare Distribution')
fig.show()

  从上图可以发现,票价中存在一些异常值票价得中位数为14.4542$;

四、各个特征与生存关系的可视化

4.1 性别与生存关系的柱状图

# 按性别分组统计生存情况
sex_survived = df.groupby(['Sex', 'Survived']).size().unstack()# 绘制柱状图
fig = px.bar(sex_survived, x=sex_survived.index, y=[0, 1], labels={'x': 'Sex', 'y': 'Count', 'variable': 'Survived'},title='Survival by Sex')
fig.show()


从上图可以发现,

# 按客舱等级分组统计生存情况
pclass_survived = df.groupby(['Pclass', 'Survived']).size().unstack()# 绘制堆叠柱状图
fig = px.bar(pclass_survived, x=pclass_survived.index, y=[0, 1], labels={'x': 'Class', 'y': 'Count', 'variable': 'Survived'},title='Survival by Class', barmode='stack')
fig.show()

4.3 年龄与生存关系的散点图

fig = px.scatter(df, x='Age', y='Fare', color='Survived', title='Age vs Fare with Survival Status', labels={'Survived': 'Survived'})
fig.show()

4.4 登船港口与生存关系的饼状图组合

# 创建子图
fig = make_subplots(rows=1, cols=2, specs=[[{'type': 'pie'}, {'type': 'pie'}]])# 绘制登船港口分布饼状图
embarked_counts = df['Embarked'].value_counts()
fig.add_trace(go.Pie(labels=embarked_counts.index, values=embarked_counts.values, title='Embarked Distribution'), row=1, col=1)# 绘制登船港口与生存关系饼状图
embarked_survived = df.groupby(['Embarked', 'Survived']).size().unstack()
fig.add_trace(go.Pie(labels=embarked_survived.index, values=embarked_survived[1], title='Survival by Embarked'), row=1, col=2)fig.update_layout(title='Embarked Analysis')
fig.show()

4.5 家庭成员数量与生存关系的组合图

# 创建家庭成员数量特征
df['FamilySize'] = df['SibSp'] + df['Parch']# 创建子图
fig = make_subplots(rows=1, cols=2, subplot_titles=('Family Size Distribution', 'Survival by Family Size'))# 绘制家庭成员数量分布直方图
fig.add_trace(go.Histogram(x=df['FamilySize'], nbinsx=10), row=1, col=1)# 绘制家庭成员数量与生存关系箱线图
fig.add_trace(go.Box(x=df['FamilySize'], y=df['Survived'], marker=dict(color='red')), row=1, col=2)fig.update_layout(title='Family Size Analysis')
fig.show()

五、多变量综合分析

5.1 性别、客舱等级与生存关系的三维散点图

fig = px.scatter_3d(df, x='Age', y='Fare', z='Pclass', color='Survived', symbol='Sex', title='3D Scatter Plot of Survival Factors',labels={'Pclass': 'Class', 'Survived': 'Survived'})
fig.show()

5.2 年龄组、客舱等级与生存关系的热力图

# 创建年龄组特征
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 10, 20, 30, 40, 50, 60, 70, 80], labels=['0-10', '11-20', '21-30', '31-40', '41-50', '51-60', '61-70', '71-80'])# 构建透视表
pivoted = df.pivot_table(index='AgeGroup', columns='Pclass', values='Survived', aggfunc='mean')# 绘制热力图
fig = px.imshow(pivoted, text_auto=".2f", title='Survival Rate by Age Group and Class',labels={'x': 'Class', 'y': 'Age Group', 'color': 'Survival Rate'})
fig.show()

5.3 性别、客舱等级与年龄的交互式箱线图

fig = px.box(df, x='Sex', y='Age', color='Pclass', title='Age Distribution by Sex and Class',labels={'Pclass': 'Class', 'Age': 'Age'})
fig.show()

  从以上可视化分析可以看出:

  • 性别与生存率:女性生存率显著高于男性,反映出 “女士优先” 的救援原则。
  • 客舱等级与生存率:一等舱乘客生存率最高,三等舱最低,表明社会阶层对生存机会的影响。
  • 年龄与生存率:儿童和年轻人生存率相对较高,老年人生存率较低。
  • 家庭成员数量:有一定家庭成员陪伴的乘客生存率较高,可能因相互帮助而增加生存机会。
  • 登船港口:不同港口乘客的生存率存在差异,可能与乘客的社会经济背景及舱位分配有关。

  以上分析揭示了泰坦尼克号事件中影响乘客生存的多方面因素,为后续深入研究和模型构建提供了直观且全面的数据洞察。

如果您对数据分析、可视化或机器学习有进一步的问题,欢迎随时交流探讨!

相关文章:

  • 目标跟踪最新文章阅读列表
  • PlatformIO 入门学习笔记(二):开发环境介绍
  • 国标GB28181视频平台EasyGBS打造生产监控智能体系,推动企业数字化升级
  • 2025蓝桥杯省赛网络安全组wp
  • 【Nova UI】十二、打造组件库之按钮组件(上):迈向功能构建的关键一步
  • 准确--如何在自己windows电脑上安装多个nodejs版本,自由切换
  • ES练习册
  • C++ AVL树的实现
  • 《AI大模型应知应会100篇》第38篇:大模型与知识图谱结合的应用模式
  • 【创新实训项目博客】数据库搭建
  • 简单了解Java的I/O流机制与文件读写操作
  • Flink 时态维度表 Join 与缓存机制实战
  • NFC 碰一碰发视频贴牌技术,音频功能的开发实践与技术解析
  • WinForm真入门(17)——NumericUpDown控件详解
  • 全星APQP软件系统:驱动芯片半导体行业研发管理迈向高效与合规新高度
  • 每日算法-250427
  • 【Pandas】pandas DataFrame rtruediv
  • 2025.4.22 JavaScript 常用事件学习笔记
  • 开源财务软件:企业财务数字化转型的有力工具
  • TensorFlow 安装全攻略
  • 马上评丨市长信箱“已读乱回”,群众在意的是什么
  • 李勇已任内蒙古乌兰察布市委副书记,曾在中央编办任职
  • 宣称防老年痴呆的“原装进口”保健品McPee被指涉假,未获澳方销售批准
  • 六部门:进一步优化离境退税政策扩大入境消费
  • 第二部以“法典”命名的法律!生态环境法典编纂迈出“关键步”
  • 杨荫凯履新浙江省委常委、组织部部长,曾任中央财办副主任