【Python画图-驯化seaborn】一文搞懂seaborn中的小提琴图实践、技巧、原理

news2025/1/18 7:26:33

【Python画图-驯化seaborn】一文搞懂seaborn中的小提琴图实践、技巧、原理

 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🎯 1. 基本介绍

  小提琴图(Violin Plot)是一种用于展示数据分布的图表,它结合了箱线图的特点和密度图的连续性。这种图表可以展示数据的密度估计,从而提供关于数据分布形状和集中趋势的直观信息。
  小提琴图其实是箱线图与核密度图的结合,箱线图展示了分位数的位置,小提琴图则展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高。在图中,白点是中位数,黑色盒型的范围是下四分位点到上四分位点,细黑线表示须。外部形状即为核密度估计(在概率论中用来估计未知的密度函数,属于非参数检验方法之一)。

💡 2. 原理介绍

  小提琴图背后的主要思想是使用核密度估计(KDE)来展示数据的分布。核密度估计是一种估计概率密度函数的方法,其公式如下:
f ( x ) = 1 n h ∑ i = 1 n K ( x − x i h ) f(x)=\frac{1}{nh}\sum_{i=1}^{n}K(\frac{x-x_i}{h}) f(x)=nh1i=1nK(hxxi)
  其中:

  • f(x)是在点 x 处的密度估计。
    n 是样本大小。
    h 是带宽(Kernel width)。
    K 是核函数,常用的核函数有高斯核、均匀核等。
    x i x_i xi是样本数据点。

🔍 3. 画图实践

3.1 数据准备

   我们通过seaborn自带的数据对其进行相关的画图,具体的导入数据代码如下所示:

import seaborn as sns
import matplotlib.pyplot as plt

# 使用Seaborn内置的tips数据集
tips = sns.load_dataset("tips")

	total_bill	tip	sex	smoker	day	time	size
0	16.99	1.01	Female	No	Sun	Dinner	2
1	10.34	1.66	Male	No	Sun	Dinner	3
2	21.01	3.50	Male	No	Sun	Dinner	3
3	23.68	3.31	Male	No	Sun	Dinner	2
4	24.59	3.61	Female	No	Sun	Dinner	4
...	...	...	...	...	...	...	...
239	29.03	5.92	Male	No	Sat	Dinner	3
240	27.18	2.00	Female	Yes	Sat	Dinner	2
241	22.67	2.00	Male	Yes	Sat	Dinner	2
242	17.82	1.75	Male	No	Sat	Dinner	2
243	18.78	3.00	Female	No	Thur	Dinner	2

3.2 单维画图

   在画小提琴图时,我们取单个维度指定方向即可,具体的代码如下所示:

import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
# 绘制小提琴图
ax = sns.violinplot(x=tips["total_bill"])

在这里插入图片描述

3.3 分组画图

   有时候我们需要对多个维度的分布进行对比分析,这个时候需要分组画图,具体的代码如下所示:

# 分组的小提琴图,同上面的箱线图一样通过X轴分组
ax = sns.violinplot(x="day", y="total_bill", data=tips)

在这里插入图片描述

  有时候我们不仅要分组,同时对每个分组内某个特征维度进行对比分析,具体的代码如下所示:

# 通过hue分组的小提琴图,相当于分组之后又分组
ax = sns.violinplot(x="day", y="total_bill", hue="smoker",
                        data=tips, palette="muted")

在这里插入图片描述

4 高阶用法

   有时候我们需要指定画图出现的顺序,具体的代码如下所示:

# 调整x轴顺序,同样通过order参数
ax = sns.violinplot(x="time", y="tip", data=tips,
                    order=["Dinner", "Lunch"])

在这里插入图片描述

🔍 5. 注意事项

  • 小提琴图非常适合于比较不同组数据的分布情况,尤其是当数据集较大时。
  • 核密度估计的带宽(bw)选择对图表的形状有很大影响,过小或过大的带宽可能导致误导。
  • 小提琴图可以与箱线图结合使用,以提供更多关于数据集中趋势和离散程度的信息。

🔍 6. 总结

  Seaborn的小提琴图是一种展示数据分布的强大工具,它结合了箱线图和密度图的优点。通过本博客的代码示例,我们学习了如何使用Seaborn绘制小提琴图,并展示了如何通过小提琴图探索不同类别数据的分布特征。希望这篇博客能够帮助你更好地利用小提琴图进行数据探索和分析。

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

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

相关文章

【信息学奥赛】CSP-J/S初赛06 算法基础及时间/空间复杂度等问题

本专栏👉CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容,包含计算机基础、初赛常考的C++程序和算法以及数据结构,并收集了近年真题以作参考。 如果你想参加信息学奥赛,但之前没有太多C++基础,请点击👉专栏:C++语法入门,如果你C++语法基础已经炉火纯青,则可以进阶算法…

ScrollView组件No exact matches in call to initializer

在scrollview中使用text后报错,水平滚动使用的话,应该里面包含一个水平布局的组件,例如HStack组件,可以设置ScrollView滚动方向为 .horizontal或者 .vertical // 左右滑动ScrollView(.horizontal, showsIndicators: false) {HSt…

@amap/amap-jsapi-loader实现高德地图嵌入React项目中,并且做到点击地图任意一处,获得它的经纬度

1.第一步要加入项目package.json中或者直接yarn install它都可以 想必大家应该都会 "amap/amap-jsapi-loader": "0.0.7"2.加入项目中 关于接口获取key的接口 大家改成自己对应的项目请求方法 import React, { PureComponent } from react; import { Input…

MFC+MySQL应用:配置

MFCMySQL 1. MFC UI界面生成2. 数据库和表生成创建数据库创建表添加表数据 3. VS中配置MySQL环境 1. MFC UI界面生成 链接: MFC使用方法 可以根据用户自身需求生成单文档、对话框等不同样式的UI界面。 2. 数据库和表生成 可以在workbench或者MySQL Server中创建数据库和表。…

户用分布式光伏项目开发模式

随着全球对可再生能源的重视和技术的不断进步,分布式光伏发电作为一种清洁、高效、可再生的能源形式,正逐渐成为新能源发展的重要方向。户用分布式光伏项目,作为分布式光伏发电的重要组成部分,其开发模式对于推动光伏产业的普及与…

【前端知识】一篇速成 建议收藏

HTML基础概念 正式敲代码之前呢,我们先来看几个概念: 0 静态网页和动态网页 静态网页: 页面的内容和显示效果就基本上不会发生变化了--除非你修改页面代码。 动态网页: 页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的…

Another Redis Desktop Manager工具自定义解析数据

自定义解析数据,支持多种程序终端输出 /Users/admin/go/src/baobao_all/ws_server/baobao/main_test/encipher_tool_redis/redis_tool {VALUE}/bin/bash -c "/Users/admin/Downloads/redis_tool {VALUE}"写个go程序解析数据 package mainimport ("encoding/jso…

LLM大模型RAG技术

在人工智能领域,大模型RAG技术(Retrieval-Augmented Generation)已成为近年来研究的热点。它结合了检索和生成两大关键技术,为自然语言处理任务带来了革命性的进步。本文将带领大家深入了解大模型RAG技术的全流程,让你…

2024年过半,新能源车谁在掉链子?

2024年过半之际,各品牌上半年的销量数据也相继出炉,是时候考察今年以来的表现了。 理想和鸿蒙智行两大增程霸主占据头两名,仍处于焦灼状态;极氪和蔚来作为高端纯电品牌紧随其后,两者之间差距很小;零跑和哪…

CD4017 – 带解码输出的十进制计数器

CD4017 IC 是一个十进制计数器,它有 10 个输出,分别代表 0 到 9 的数字。计数器在(14号引脚)每个时钟脉冲上升时增加 1。计数器达到 9 后,它会在下一个时钟脉冲时从 0 重新开始。 引脚名称管脚 #类型描述VD…

windows非白名单exe监控并杀死

需求:孩子在家用电脑上网课,总是悄悄打开游戏或视频软件 方案:指定白名单exe,打开非白名单的就自动被杀死,并记录日志供查看 不知道是否还有更好的结果方案? import psutil import time import logging#…

【MATLAB源码-第139期】基于matlab的OFDM信号识别与相关参数的估计,高阶累量/小波算法调制识别,循环谱估计,带宽估计,载波数目估计等等。

操作环境: MATLAB 2022a 1、算法描述 在现代无线通信系统中,正交频分复用(OFDM)因其高效的频谱利用率、强大的抗多径衰落能力以及灵活的带宽分配等优势,成为了一种非常重要的调制技术。然而,随着无线通信…

Swift 定制 Core Data 迁移

文章目录 前言什么是 Core Data 迁移?示例更新模型创建一个新的模型版本创建映射模型编写自定义迁移策略总结 前言 随着应用程序和用户群的增长,你需要添加新功能,删除其他功能,并改变应用程序的工作方式。这是软件开发生命周期的…

大语言模型融合知识图谱的问答系统研究

文章目录 题目摘要方法实验消融实验 题目 大语言模型融合知识图谱的问答系统研究 论文地址:http://fcst.ceaj.org/CN/10.3778/j.issn.1673-9418.2308070 项目地址:https://github.com/zhangheyi-1/llmkgqas-tcm/ 摘要 问答系统(Question Ans…

vue css 链式布局模式

<div class"pp-wrap"> <div class"pp-left"><!--跳活动反思--><div class"even-box" v-for"(item,index) in trackingPtoPLeftList" :key"index" click"jumpReview(item)"><div …

3D虚拟会议室打破传统会议局限,提供沉浸式会议体验

一、身临其境的虚拟会议体验 1、沉浸感提升参会效果 3D虚拟会议室借助虚拟现实技术为用户创造出一个仿佛置身真实会议场所的感觉。用户可以进入一个虚拟的会议室&#xff0c;感受到空间的深度和互动性。这种身临其境的体验&#xff0c;使得参会者不仅仅是被动地观看屏幕&…

Zoom使用的基本步骤和注意事项

Zoom是一款功能强大的视频会议软件&#xff0c;广泛应用于远程办公、在线教育、团队协作等多个场景。以下是Zoom使用的基本步骤和注意事项&#xff1a; 一、注册与登录 注册Zoom账户&#xff1a; 访问Zoom官方网站&#xff08;如zoom.us&#xff09;&#xff0c;点击“注册”…

后端之路——阿里云OSS云存储

一、何为阿里云OSS 全名叫“阿里云对象存储OSS”&#xff0c;就是云存储&#xff0c;前端发文件到服务器&#xff0c;服务器不用再存到本地磁盘&#xff0c;可以直接传给“阿里云OSS”&#xff0c;存在网上。 二、怎么用 大体逻辑&#xff1a; 细分的话就是&#xff1a; 1、准…

泰国内部安全行动司令部数据泄露

BreachForums 论坛的一名成员宣布发生一起重大数据泄露事件&#xff0c;涉及泰国内部安全行动司令部 (ISOC)&#xff0c;该机构被称为泰国皇家武装部队的政治部门。 目前&#xff0c;我们无法准确确认此次泄露的真实性&#xff0c;因为该组织尚未在其网站上发布有关该事件的任…

【ESP32】打造全网最强esp-idf基础教程——15.WiFi连接STA模式

WiFi连接STA模式 一、ESP32的WiFi功能介绍 前面章节内容&#xff0c;基本上都是描述了ESP32强大的MCU能力&#xff0c;这些MCU能力使得ESP32可以替换许多类型的单片机工作&#xff0c;而自己承担这部分功能&#xff1b;当然ESP32的IOT能力才是它的主业&#xff0c;从硬件配置来…