基于Seaborn和Matplotlib的可视化案例分析

处理数据有时会有点无聊。将原始数据转换为可理解的格式是整个过程中最重要的部分之一,那么为什么只停留在数字上,当我们可以将数据可视化为令人兴奋的图表时,这些图表可以在python中获取。这篇文章将重点探索耐人寻味的预处理之旅。

Seaborn和Matplotlib为我们提供了许多诱人的图表,通过这些图表,人们可以轻松地分析关键点,更深入地了解数据,并最终获得对数据的深刻见解,并在通过不同算法训练后获得最高的准确性。

让我们浏览一下我们的数据集:数据集(36行)包含6个特征和2个类(Survived = 1, Not Survived = 0),我们将根据这些特征绘制某些图表。

数据集链接 https://github.com/Abduttayyeb/Visual-Data-Analysis/blob/master/Graph_Data.csv

1. 年龄段密度分布

好的,在浏览了数据集之后,我们可以有一个问题。哪个年龄段人口最多?要回答这个问题,我们需要KDE Plot的视觉效果,它只是一个密度图。因此,让我们从导入所需的库开始,并使用它的函数绘制图形。

# importing the modules and dataset
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# KDE plot 
sns.kdeplot(dataset["Age"], color = "green", shade = True)
plt.show()
plt.figure()

在这里插入图片描述

2. 年龄组[20, 40]计数

所以现在我们有一个清晰的图片,如何计数的人与年龄组的分布,在这里我们可以看到,年龄组20-40有最大的计数,所以让我们检查一下。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# Checking the count of Age Group 20-40 
dataset.Age[(dataset["Age"] >= 20) & (dataset["Age"] <= 40)].count()

输出

26

3. Fare 和 Age的关系

深入挖掘视觉效果,了解Fare VS Age的变化,它们之间的关系是什么,让我们使用不同类型的kdeplot 来看看,现在有二元密度,我们只添加Y变量。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")sns.kdeplot(dataset["Age"], dataset["Fare"], shade = True)
plt.show()
plt.figure()

在这里插入图片描述

4.年龄组[20,40]且Fare在[100,200]之间计数

在研究了这个情况后,我们看到,颜色的密度是最大的年龄组之间20-40,而对应的Fare为100-200,让我们检查一下 。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# Checking The Variation Between Fare And Age
dataset.Age[((dataset["Fare"] >= 100) &(dataset["Fare"]<=200)) &((dataset["Age"]>=20) &dataset["Age"]<=40)].count()

输出

16

5. 添加直方图

我们还可以通过使用seaborn的distplot()模块来向kdeplot添加直方图:

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# Histogram+Density Plot 
sns.distplot(dataset["Age"], color = "green")
plt.show()
plt.figure()

在这里插入图片描述

6. 男性与女性的比例

如果你想知道男性与女性的比例,我们可以在KDE中绘制同样的图:

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# Adding Two Plots In One
sns.kdeplot(dataset[dataset.Gender == 'Female']['Age'],color = "blue")
sns.kdeplot(dataset[dataset.Gender == 'Male']['Age'],color = "orange", shade = True)
plt.show()
plt.figure()

在这里插入图片描述

7.统计年龄在12-40之间数据

正如我们可以从图中看到的,在12岁到40岁之间,计数会增加,让我们检查一下是否相同。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# showing that there are more Male's Between Age Of 12-40 
dataset.Gender[((dataset["Age"] >= 12) &(dataset["Age"] <= 40)) &(dataset["Gender"] == "Male")].count()
dataset.Gender[((dataset["Age"] >= 12) &(dataset["Age"] <= 40)) &(dataset["Gender"] == "Female")].count()

输出

17
15

8. 小提琴图

我们已经谈了很多关于特征的,现在让我们谈谈依赖于特征的生存率。为此,我们将使用经典的小提琴图,顾名思义,它描绘了与小提琴音乐波相同的视觉效果。基本上,小提琴图用于可视化数据的分布及其概率密度。

生存率与年龄有什么关系?让我们直观地分析一下:

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")sns.violinplot(x = 'Survived', y = 'Age', data = dataset,palette = {0 : "yellow", 1 : "orange"});
plt.show()
plt.figure()

在这里插入图片描述
说明:我们在图中看到的白色点是中位数,中间的粗黑条代表四分位数 。
从其延伸的细黑线表示数据中的上(最大)和下(最小)相邻值。
快速浏览显示我们之间的年龄[10-20]的生存率要高(Survived==1)。

9. 存活率和性别与年龄的关系

让我们再画一张存活率与性别和年龄的关系图。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")sns.violinplot(x = "Gender", y = "Age", hue = "Survived",data = dataset,palette = {0 : "yellow", 1 : "orange"})
plt.show()
plt.figure()

这里还有一个属性是hue,它指的是Survived的二进制值。
在这里插入图片描述

10. CATPLOT

简单地说,catplot显示了一个,两个或三个分类变量的类别的频率(或可选的分数)。

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# Plot a nested barplot to show survival for Siblings and Gender
g = sns.catplot(x = "Siblings", y = "Survived", hue = "Gender", data = dataset,height = 6, kind = "bar", palette = "muted")
g.despine(lef t= True)
g.set_ylabels("Survival Probability")
plt.show()

在这里插入图片描述

11. 门票类型与票价

现在,在数据集中,我们看到有三个类别的门票,这是基于票价,让我们找到它(参考此图,我添加了一个类别列门票)

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")# Based On Fare There Are 3 Types Of Tickets 
sns.catplot(x = "PassType", y = "Fare", data = dataset)
plt.show()
plt.figure()

在这里插入图片描述

12. 票价与存活率的关系

# importing the modules and dataset 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
dataset = pd.read_csv("Survival.csv")sns.catplot(x="PassType", y="Fare", hue="Survived",kind="swarm",data=dataset)
plt.show()
plt.figure()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/680492.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSM+SpringBoot框架

单例bean是线程安全的吗 AOP Spring事务失效 第四种&#xff0c;在方法内部使用&#xff0c;需要用代理类调用此方法 bean生命周期 bean的循环依赖 SpringMVC执行流程 、 SpringBoot自动配置原理 Spring常见注解 MyBatis执行流程 MyBatis延迟加载 MyBatis缓存

最新在线看4K高清电影网站推荐

随着互联网技术的发展&#xff0c;观看高清电影已经不再是难事。这里我为大家分享几个最新的在线看4K高清电影网站&#xff0c;让您在家就能享受到极致观影体验。 通过下面这个即可 1. 【超清影视】 【超清影视】是国内新兴的4K高清电影网站&#xff0c;拥有海量的影片资源&a…

000——对i.MAX6uLL进行开箱检查

目录 00外观检查 01有线网卡检查 02USB-host测试 03耳机测试 04按键测试 05查看CPU温度 00外观检查 看起来没什么问题&#xff0c;买了半年了刚开始要做 01有线网卡检查 开机启动正常&#xff0c;韦东山老师还写了个欢迎界面&#xff0c;这个我后面因为要用于毕业设计&am…

《Linux 简易速速上手小册》第5章: 用户与群组管理(2024 最新版)

文章目录 5.1 管理用户账户5.1.1 重点基础知识5.1.2 重点案例&#xff1a;创建一个新的开发者账户5.1.3 拓展案例 1&#xff1a;禁用用户登录5.1.4 拓展案例 2&#xff1a;设置账户到期 5.2 群组概念与管理5.2.1 重点基础知识5.2.2 重点案例&#xff1a;为项目团队设置群组5.2.…

《Linux 简易速速上手小册》第3章: 文件系统与权限(2024 最新版)

文章目录 3.1 Linux 文件系统结构3.1.1 重点基础知识3.1.2 重点案例&#xff1a;设置一个 Web 服务器3.1.3 拓展案例 1&#xff1a;日志文件分析3.1.3 拓展案例 2&#xff1a;备份用户数据 3.2 理解文件权限3.2.1 重点基础知识3.2.2 重点案例&#xff1a;共享项目文件夹3.2.3 拓…

FPGA_简单工程_数码管静态显示

一 理论 数码管是一种半导体发光器件&#xff0c;基本单位是发光二极管。 以六位八段数码管为例&#xff0c;每段需要一个端口信号&#xff0c;6814位。 74HC595芯片&#xff1a; 8位串行输入&#xff0c;并行输出的位移缓存器&#xff0c;其内部具有8位移位寄存器和一个存储…

Javaweb之SpringBootWeb案例之 登录功能的详细解析

1. 登录功能 1.1 需求 在登录界面中&#xff0c;我们可以输入用户的用户名以及密码&#xff0c;然后点击 "登录" 按钮就要请求服务器&#xff0c;服务端判断用户输入的用户名或者密码是否正确。如果正确&#xff0c;则返回成功结果&#xff0c;前端跳转至系统首页面…

算法学习——LeetCode力扣二叉树篇4

算法学习——LeetCode力扣二叉树篇4 222. 完全二叉树的节点个数 222. 完全二叉树的节点个数 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xf…

车载诊断协议DoIP系列 —— 协议中术语解释和定义

车载诊断协议DoIP系列 —— 协议中术语解释和定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…

罗德里格斯公式简要介绍

一、罗德里格斯公式&#xff08;Rodrigues’ rotation formula&#xff09;是一个用于计算绕任意轴旋转向量的数学公式。它是由欧仁罗德里格斯&#xff08;Olinde Rodrigues&#xff09;在1840年提出的。这个公式在三维空间中描述了一个向量绕着单位向量旋转θ角度后的结果。 …

C++初阶:容器(Containers)list常用接口详解

介绍完了vector类的相关内容后&#xff0c;接下来进入新的篇章&#xff0c;容器list介绍&#xff1a; 文章目录 1.list的初步介绍2.list的定义&#xff08;constructor&#xff09;3.list迭代器&#xff08; iterator &#xff09;4.string的三种遍历4.1迭代器4.2范围for循环 5…

无人机飞行控制系统功能,多旋翼飞行控制系统概述

飞行控制系统存在的意义 行控制系统通过高效的控制算法内核&#xff0c;能够精准地感应并计算出飞行器的飞行姿态等数据&#xff0c;再通过主控制单元实现精准定位悬停和自主平稳飞行。 在没有飞行控制系统的情况下&#xff0c;有很多的专业飞手经过长期艰苦的练习&#xff0…

【Docker进阶】镜像制作-用Dockerfile制作镜像(一)

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作用dockerfile制作镜像dockerfile是什么dockerfile格式为什么需要dockerfileDockerfile指令集合FROMMAINTAINERLABELCOPYENVWORKDIR 用dockerfile制作镜像 用快照制作镜像的缺陷&#xff1a; 黑盒不可重复臃肿 docker…

Kafka 入门笔记

课程地址 概述 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列&#xff08;MQ&#xff09; 发布/订阅&#xff1a;消息的发布者不会将消息直接发送给特定的订阅者&#xff0c;而是将发布的消息分为不同的类别&#xff0c;订阅者只接受感兴趣的消息 消息队列 消息队…

leetcode:买卖股票最佳时机二

思路&#xff1a; 使用贪心算法&#xff1a;局部最优是将买卖过程中产生的正数进行相加&#xff0c;进而使得最后结果最大&#xff08;全局最优&#xff09;。 price [7,1,5,10,3,6,4] -6,4,5,-7,3,-2 正数相加就得到了最大 代码实现&#xff1a; 1.循环中下标从1开始 …

20240212请问如何将B站下载的软字幕转换成为SRT格式?

20240212请问如何将B站下载的软字幕转换成为SRT格式&#xff1f; 2024/2/12 12:47 百度搜索&#xff1a;字幕 json 转 srt json srt https://blog.csdn.net/a_wh_white/article/details/120687363?share_token2640663e-f468-4737-9b55-73c808f5dcf0 https://blog.csdn.net/a_w…

上位机图像处理和嵌入式模块部署(利用python开发软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 开发windows和linux软件的时候&#xff0c;大家一般都是习惯于用c/c语言进行开发&#xff0c;但是目前来说很多的开发板都是支持python语言开发的。…

RK3588平台开发系列讲解(视频篇)RKMedia 数据流向

文章目录 一、 获取RKMedia模块通道中的数据二、RKMedia的数据源和接收者三、模块通道绑定API调用 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; &#x1f4e2;RKMedia是RK提供的一种多媒体处理方案&#xff0c;可实现音视频捕获、音视频输…

服务治理中间件-Eureka

目录 简介 搭建Eureka服务 注册服务到Eureka 简介 Eureka是Spring团队开发的服务治理中间件&#xff0c;可以轻松在项目中&#xff0c;实现服务的注册与发现&#xff0c;相比于阿里巴巴的Nacos、Apache基金会的Zookeeper&#xff0c;更加契合Spring项目&#xff0c;缺点就是…

前端vue 数字 字符串 丢失精度问题

1.问题 后端返回的数据 是这样的 一个字符串类型的数据 前端要想显示这个 肯定需要使用Json.parse() 转换一下 但是 目前有一个问题 转换的确可以 showId:1206381711026823172 有一个这样的字段 转换了以后 发现 字段成了1206381711026823200 精度直接丢了 原本的数据…