基于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.hqwc.cn/news/464690.html

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

相关文章

腾讯云4核8G服务器多少钱?2024精准报价

腾讯云4核8G服务器S5和轻量应用服务器优惠价格表&#xff0c;轻量应用服务器和CVM云服务器均有活动&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;标准型SA2服务器1444.8元一年&#xff0c;轻量应用服务器4核8G12M带宽一…

Netty应用(二) 之 ByteBuffer

目录 4.ByteBuffer详解 4.1 ByteBuffer为什么做成一个抽象类&#xff1f; 4.2 ByteBuffer是抽象类&#xff0c;他的主要实现类为 4.3 ByteBuffer的获取方式 4.4 核心结构&#xff08;NIO的ByteBuffer底层是啥结构&#xff0c;以及读写模式都是根据这些核心结构进行维护的&a…

ctfshow-web21~28-WP

爆破(21-28) web21 题目给了一个zip文件,打开后解压是爆破的字典,我们抓包一下网址看看 发现账号和密码都被base64了,我们发送到intruder模块,给爆破的位置加上$符圈住 去base64解码一下看看格式

《计算思维导论》笔记:10.4 关系模型-关系运算

《大学计算机—计算思维导论》&#xff08;战德臣 哈尔滨工业大学&#xff09; 《10.4 关系模型-关系运算》 一、引言 本章介绍数据库的基本数据模型&#xff1a;关系模型-关系运算。 二、什么是关系运算 在数据库理论中&#xff0c;关系运算&#xff08;Relational Operatio…

Linux中常用的工具

软件安装 yum 软件包 在Linux中&#xff0c;软件包是一种预编译的程序集合&#xff0c;通常包含了用户需要的应用程序、库、文档和其他依赖项。 软件包管理工具是用于安装、更新和删除这些软件包的软件。常见的Linux软件包管理工具包括APT&#xff08;Advanced Packaging To…

失去中国市场的三星仍是全球第一,但中国手机无法失去海外市场

随着2023年分析机构公布全球手机市场和中国手机市场的数据&#xff0c;业界终于看清中国市场早已没有以前那么重要&#xff0c;三星、苹果这些国际品牌对中国市场的依赖没有他们想象的那么严重&#xff0c;相反中国手机对海外市场比以往任何时候都要更依赖了。 三星在2023年被苹…

【Java多线程案例】实现阻塞队列

1. 阻塞队列简介 1.1 阻塞队列概念 阻塞队列&#xff1a;是一种特殊的队列&#xff0c;具有队列"先进先出"的特性&#xff0c;同时相较于普通队列&#xff0c;阻塞队列是线程安全的&#xff0c;并且带有阻塞功能&#xff0c;表现形式如下&#xff1a; 当队列满时&…

【linux温故】linux调度机制

假如你是设计者&#xff0c;你会设计怎样的调度机制呢&#xff1f; 时间片 最简单的&#xff0c;小学生都能想出来的一种&#xff0c;每个 ready task&#xff0c;按照一个固定的时间片轮流执行。 大家不要抢&#xff0c;挨个儿排队执行。执行完时间片&#xff0c;就排在后面…

并行计算导论 笔记 1

目录 并行编程平台隐式并行超标量执行/指令流水线超长指令字处理器 VLIW 内存性能系统的局限避免内存延迟的方法 并行计算平台控制结构通信模型共享地址空间平台消息传递平台对比 物理组织理想并行计算机并行计算机互联网络网络拓朴结构基于总线的网络交叉开关网络多级网络全连…

Java的值传递与“引用传递”辨析

目录 Java的值传递与“引用传递”辨析1. 传递方式概述2. 值传递示例3. “引用传递”示例4. 值传递与"引用传递"的实际应用5. 总结&#xff1a;java只有值传递 Java的值传递与“引用传递”辨析 欢迎来到本博客&#xff0c;今天我们将深入研究Java中是值传递还是引用传…

本地运行多种大语言模型:一行代码即可完成 | 开源日报 No.167

ollama/ollama Stars: 33.5k License: MIT ollama 是一个轻量级、可扩展的本地语言模型构建和运行框架。 提供简单的 API 用于创建、运行和管理模型包含丰富的预构建模型库&#xff0c;方便在各种应用中使用支持从 GGUF、PyTorch 或 Safetensors 导入自定义模型可以通过命令行…

【维生素C语言】附录:strlen 函数详解

写在前面&#xff1a;本篇将专门为 strlen 函数进行讲解&#xff0c;总结了模拟实现 strlen 函数的三种方法&#xff0c;并对其进行详细的解析。手写库函数是较为常见的面试题&#xff0c;希望通过本篇博客能够加深大家对 strlen 的理解。 0x00 strlen函数介绍 【百度百科】str…