基于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.…

797. 差分

Problem: 797. 差分 文章目录 思路解题方法复杂度Code 思路 这是一个差分数组的问题。差分数组的主要适用场景是频繁对原始数组的某一个区间进行增减操作。这种操作是区间修改操作&#xff0c;在这种操作下&#xff0c;差分数组只需要对区间的两个端点进行操作&#xff0c;时间…

Day31 贪心算法part01

本质&#xff1a;局部最优推导整体最优 摆动序列 class Solution:def wiggleMaxLength(self, nums: List[int]) -> int:res []if len(nums) 1 or (len(nums) 2 and nums[0] nums[1]):return 1res.append(nums[1] - nums[0])r 2i 2while r < len(nums):multi num…

《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 拓…

1969 - 求下一个字母

题目描述 从键盘读入一个字母&#xff0c;可能是大写字母&#xff0c;也可能是小写字母&#xff0c;请输出该字母的后一个字母是什么&#xff1f; 如果到了字母表的最后一个字母&#xff0c;那么输出第一个对应的字母。 比如&#xff1a;a 的下一个字母是 b&#xff0c;X 的…

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…

python疾病心理学发展重要性

心理学是研究人类思维、情感、行为及其发展的科学&#xff0c;而疾病心理学则专注于研究与疾病和健康相关的心理过程和行为。以下是疾病心理学发展的重要性&#xff1a; 促进健康与预防疾病&#xff1a;疾病心理学研究可以帮助我们了解心理因素如何影响健康和疾病的发展。通过了…

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

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

蓝桥杯每日一题------背包问题(四)

前言 前面讲的都是背包的基础问题&#xff0c;这一节我们进行背包问题的实战&#xff0c;题目来源于一位朋友的询问&#xff0c;其实在这之前很少有题目是我自己独立做的&#xff0c;我一般习惯于先看题解&#xff0c;验证了题解提供的代码是正确的后&#xff0c;再去研究题解…

罗德里格斯公式简要介绍

一、罗德里格斯公式&#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…

BatchNorm介绍:卷积神经网络中的BN

一、BN介绍 1.原理 在机器学习中让输入的数据之间相关性越少越好&#xff0c;最好输入的每个样本都是均值为0方差为1。在输入神经网络之前可以对数据进行处理让数据消除共线性&#xff0c;但是这样的话输入层的激活层看到的是一个分布良好的数据&#xff0c;但是较深的激活层…

MyBatis执行流程

MyBatis是一个流行的Java持久层框架&#xff0c;它封装了JDBC操作&#xff0c;使开发者可以通过XML或注解的方式映射SQL语句&#xff0c;并将POJO与数据库表之间进行映射。了解MyBatis的执行流程&#xff0c;可以帮助开发者更好地理解其内部工作机制&#xff0c;优化代码并解决…

企业微信自动推送机器人的应用与价值

随着科技的快速发展&#xff0c;企业微信自动推送机器人已经成为了企业数字化转型的重要工具。这种机器人可以自动推送消息、执行任务、提供服务&#xff0c;为企业带来了许多便利。本文将探讨企业微信自动推送机器人的应用和价值。 一、企业微信自动推送机器人的应用 企业微信…

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

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