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

Python 数据可视化之山脊线图 Ridgeline Plots

文章目录

  • 一、前言
  • 二、主要内容
  • 三、总结

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、前言

JoyPy 是一个基于 matplotlib + pandas 的单功能 Python 包,它的唯一目的是绘制山脊线图 Joyplots(也称为 Ridgeline Plots)。

Why are they called joyplots?

Joyplots 是堆叠的、部分重叠的密度图,就是这么简单。它们是一种很好的绘制数据的方式,可以用来直观比较分布,特别是哪些随着一个维度(比如时间)变化的分布。虽然这并不是一种新技术。

在这里插入图片描述

Github 地址:https://github.com/leotac/joypy

安装 joypy,使用 pip install joypy==0.2.6 就好。

在行为差异、特征工程和预测建模等场景中,了解不同组之间的变量分布差异非常有用。在这些情况下,许多数据科学家更喜欢在单一坐标轴上绘制组级分布图,例如直方图或密度图。然而,当群体较多时,简单的组级分布图可能变得混乱且难以理解。

本文将向您介绍一种紧凑而优雅的数据可视化工具:山脊线图。它以清晰的方式展示不同变量或变量类别的分布差异,帮助我们更好地理解数据中的群体特征,从而获得更深入的洞察和启发。


二、主要内容

使用鸢尾花数据集 iris.csv 做实验,这个数据集如下所示:

在这里插入图片描述

打印特征名称和标签,以及输出标签的 value_counts。

print(f"特征:{list(df.columns)[:-1]}")
print(f"标签:{list(df.columns)[-1]}")特征:['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth']
标签:Namedf["Name"].value_counts()Iris-setosa        50
Iris-versicolor    50
Iris-virginica     50
Name: Name, dtype: int64
selected_cols = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth']fig, ax = plt.subplots(figsize=(10, 6), dpi=200)
my_title = 'Distribution of features in the iris dataset'fig, axes = joyplot(data=df,ax=ax,by='Name',column=selected_cols,xlabelsize=14,ylabelsize=14,grid=True,hist=False,color=['#FF0066', '#9400D3','#002FA7', '#FFB900'],legend=True,title=my_title,alpha=0.86,
)fig.savefig("./Figures/山脊图.png", dpi=300)plt.show()

关键参数说明

  • data:数据帧(DataFrame)、系列(Series)或嵌套集合(Nested collection)。常用 pandas 的 DataFrame
  • ax : matplotlib axes 对象,默认为 None。
  • column:字符串或序列。如果传入参数,将用于将数据限制为列的子集。
  • by:对象,可选项。用于划分不同组的变量分布的特征名称。本次实验中是 “Name”。
  • grid:布尔值,默认是 True。是否显示轴网格线。
  • title:绘制的图表的标题。
  • alpha:设置透明度。
  • xlabels、ylabels:布尔值或列表,默认为 True。
  • xlabelsize:整数,默认值 None。如果指定,则更改 X 轴标签尺寸。
  • xrot:浮点数,默认为 None。旋转 X 轴标签的角度。
  • ylabelsize:整数,默认值 None。如果指定,则更改 Y 轴标签尺寸。
  • yrot:浮点数,默认为 None。旋转 Y 轴标签的角度。
  • figsize : 元组。默认情况下,要创建的图形大小(以 inches 为单位)。
  • color:在绘图中使用的一种或多种颜色。可以是字符串或任何可被 matplotib 解释为颜色的东西。通常传入颜色列表。
  • kwds : 其他绘图关键字参数,将传递给 hist / {/} /kde plot 函数。

实际上,这主要涉及一些 matplotlib 绘图参数。用户还可以直接修改源代码,以调整 X 轴、Y 轴、标题和图例的字体大小,从而使生成的山脊线图更加美观。

山脊线图可视化的效果如下图所示

在这里插入图片描述

正如上图所示,山脊线图不仅展示了每个鸢尾花种类四个特征的分布形状和峰值,还直观地展示了不同种类之间的差异。通过将多个组的分布放置在同一张山脊线图上,并使用不同的颜色或线型进行标识,我们可以轻松比较它们之间的相似性和差异性。


三、总结

山脊线图(Ridgeline Plots),也被称为 Joy Plots,是一种用于展示一个或多个组的数据分布的数据可视化方法。

什么是山脊线图?

  • 山脊线图中,每个组的数据分布通过平滑的密度曲线表示,这些曲线沿垂直轴堆叠排列,从而产生类似山脊的视觉效果。
  • 这种图表特别适用于比较不同组的数据分布情况。

为什么要使用山脊线图?

  • 平滑展示数据分布:与传统的条形图或直方图相比,山脊线图提供了一种更平滑、更直观的方式来展示数据的分布情况。
  • 比较能力:山脊线图非常适合比较多个分布的形状和大小,清晰地展示不同组之间的变化和趋势。
  • 空间效率:通过在单个图中堆叠,山脊线图可以有效地利用空间,避免了创建多个单独的密度图。
  • 美观性:山脊线图在视觉上吸引人,用不同的颜色和样式区分不同的组,使得数据更加生动和直观。
  • 趋势识别:可以轻松识别多个群体数据中的共同模式和异常值。
  • 适用于大量数据集:山脊线图适用于展示大量数据集,而不会显得拥挤或不清晰。

如何制作山脊线图?

  • 山脊线图的制作基于核密度估计(Kernel Density Estimation,KDE),这是一种非参数估计概率密度函数的方法。
  • 使用 JoyPy,一个基于 matplotlib + pandas 的轻量级 Python 包,可以轻松绘制山脊线图 Joy Plot。

📚️ 参考链接:

  • 山脊线图(Ridgeline Plots):一个被低估的数据可视化瑰宝
  • HF.050 | 山脊图、密度图,最全总结实现方法在这里!
  • 沈向洋:致 AI 时代的我们 —— 请不要忽视写作的魅力

相关文章:

Python 数据可视化之山脊线图 Ridgeline Plots

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 JoyPy 是一个基于 matplotlib pandas 的单功能 Python 包,它的唯一目的是绘制山脊线图 Joyplots(也称为 Ridgeline Plots&…...

VTK 三维场景的基本要素(相机) vtkCamera 相机的运动

相机的运动 当物体在处于静止位置时,相机可以在物体周围移动,摄取不同角度的图像 移动 移动分为相机的移动,和相机焦点的移动;移动改变了相机相对焦点的位置,离焦点更近或者更远;这样就会改变被渲染的物体…...

C++ //练习 6.53 说明下列每组声明中的第二条语句会产生什么影响,并指出哪些不合法(如果有的话)。

C Primer(第5版) 练习 6.53 练习 6.53 说明下列每组声明中的第二条语句会产生什么影响,并指出哪些不合法(如果有的话)。 (a) int calc(int &, int &);int calc(const int &, const int &); (b) int …...

缓慢变化维 常用的处理方法

什么是缓慢变化维 维度 在数仓中,表往往会被划分成两种类型,一种是 事实表,另一种是维度表,举个例子,比如说: ❝ 2024年2月14日,健鑫在12306上买了两张火车票,每张火车票400元&…...

free pascal:fpwebview 组件通过JSBridge调用本机TTS

从 https://github.com/PierceNg/fpwebview 下载 fpwebview-master.zip 简单易用。 先请看 \fpwebview-master\README.md cd \lazarus\projects\fpwebview-master\demo\js_bidir 学习 js_bidir.lpr ,编写 js_bind_speak.lpr 如下,通过JSBridge调用本机…...

C语言静态库深入剖析

在C语言编程实践中,库是代码复用和模块化开发的重要基础结构。静态库作为其中一种主要的库类型,其内容在编译链接阶段即被完整地嵌入到最终生成的可执行文件中,从而使得程序在运行时无需外部依赖。本篇博客将系统性、详细地剖析C语言静态库的…...

A股上市以来涨幅排行榜

一、统计数据说明 1. 涨幅排行榜是根据股价的后复权价格计算的,该价格考虑了分红送股拆股等事件对股价的影响,相当于是分红再投资的股价。 2. 年化投资收益率,是根据IPO收盘价至今涨幅计算的复合年化收益率。例如,假设一个股票上…...

鸿蒙开发系列教程(十八)--页面内动画(1)

页面内的动画 显示动画 语法:animateTo(value: AnimateParam, event: () > void): void 第一个参数指定动画参数 第二个参数为动画的闭包函数。 如:animateTo({ duration: 1000, curve: Curve.EaseInOut }, () > {动画代码}) dura…...

Web基础01-HTML+CSS

目录 一、HTML 1.概述 2.html结构解析 3.HTML标签分类 4.HTML标签关系 5.HTML空元素 6.HTML属性 7.常用标签 (1)HTML标签 (2)标题标签 (3)换/折行标签 (4)段落标签 &am…...

Linux命令行全景指南:从入门到实践,掌握命令行的力量

目录 知识梳理思维导图: linux命令入门 为什么要学Linux命令 什么是终端 什么是命令 关于Linux命令的语法 tab键补全 关于命令提示符 特殊目录 常见重要目录 /opt /home /root /etc /var/log/ man命令 shutdown命令 history命令 which命令 bash…...

蓝桥杯嵌入式第11届真题(完成) STM32G431

蓝桥杯嵌入式第11届真题(完成) STM32G431 题目 代码 程序和之前的大同小异,不过多解释 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief :…...

ChatGPT高效提问—prompt实践(教师助手)

ChatGPT高效提问—prompt实践(教师助手) 下面来看看ChatGPT在教育领域有什么用途。 首先设定ChatGPT的角色为高中教师助手。 输入prompt: ChatGPT输出: ​ 教师助手的角色已经设置完成。下面通过几种不同的情景演示如何使用。 1.1.1 制定…...

AI绘画作品的展示和变现-2

4.7 制作红包封面 中国的节日和传统文化元素仍然可以成为创作者们的创作灵感,创造出更多的变现机会。比如元宵节,可以制作大型元宵图案,进行引流并卖出元宵。 而春分、谷雨等节气也可以成为创作的灵感来源,创作出与之相关的图案&…...

Linux---网络套接字

端口号 端口号 端口号是一个2字节16位的整数; 端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理; IP地址 端口号能够标识网络上的某一台主机的某一个进程; 一个端口号只能被一个进程占用 在公网上,IP地址能表示唯一的一台主机&…...

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

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

智能汽车行业产业研究报告:4D成像毫米波雷达—自动驾驶最佳辅助

今天分享的是智能汽车系列深度研究报告:《智能汽车行业产业研究报告:4D成像毫米波雷达—自动驾驶最佳辅助》。 (报告出品方:开源证券) 报告共计:43页 视觉感知最佳辅助——4D 成像毫米波雷达 感知是自动…...

docker 3.1 镜像

docker 3.1 镜像命令 拉取镜像 docker pull debian #从 Docker Hub 拉取名为 debian 的镜像docker pull hello-world #从 Docker Hub 拉入名为 hello-world 的镜像‍ 运行镜像/容器 docker run hello-world ‍ 查看本地所有的镜像 docker images​​ 容器生成镜像…...

如何在极低成本硬件上落地人工智能算法 —— 分布式AI

一、背景 分布式AI的发展前景非常广阔,随着5G、6G等高速网络通信技术的普及和边缘计算能力的提升,以及AI算法和硬件的不断优化进步,分布式AI将在多个领域展现出强大的应用潜力和市场价值: 1. **物联网(IoT&#xff0…...

机器学习:ROC曲线笔记

ROC曲线(Receiver Operating Characteristic Curve)是一种用于评估二分类模型性能的图形化工具,主要用于展示在不同阈值(Threshold)下模型的真阳性率(True Positive Rate,TPR)和假阳…...

【lesson54】线程互斥

文章目录 线程互斥 线程互斥 互斥量mutex 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。但有时候,很多变量都需要在线程间…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...