Python 中的 Raincloud 图绘制

news2024/11/24 9:01:24

Python 中的 Raincloud 图

` 提示:一种强大的数据可视化方法,由小提琴图、散点图和箱线图的组合组成


提示:目录

Python 中的 Raincloud 图绘制

  • Python 中的 Raincloud 图
  • 前言
  • 一、什么是 Raincloud 图?
  • 二、使用步骤
    • 1.加载数据集
    • 2.读入数据
    • 3.数据可视化
  • 总结


前言

提示:大概内容:

上述每种可视化方法都有自己的优点和缺点。但是,如果我们可以将它们组合在一起并获得更强大的数据可视化技术,即Raincloud plots呢


提示:正文内容

一、什么是 Raincloud 图?

雨云图是一种更强大、更直观的数据可视化形式。正如我之前提到的,它们是多种方法的混合,这些方法放在一起可以很好地概述我们需要了解的关于数据集中观察的大多数统计数据和模式。
在这里插入图片描述
在本文中,我们将学习如何使用numpy和matplotlib库在 Python 中使用和实现此类绘图。

二、使用步骤

1.加载数据集

为了简单起见,对于这个例子,我们将在给定的值范围内生成两个随机分布。

让我们导入所需的库

代码如下(示例):

# 导入
import numpy as np 
import matplotlib.pyplot as plt

2.读入数据

接下来,以下代码片段将为我们生成两个数字分布,稍后我们将使用它们在雨云图中可视化数据

# 生成 0-10 之间整数的随机分布作为第一个特征
x1 = np.random.choice([ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ], p=[ 0.01 , 0.01 , 0.15 , 0.19 , 0.05 , 0.11 , 0.2 , 0.16 , 0.10 , 0.01 , 0.01 ], 尺寸=( 500 ))

# 在每个样本上应用随机噪声,这样它们就不会在散点图中的 x 轴上重叠
idxs = np.arange( len (x1)) 
out = x1.astype( float ) 
out.flat[idxs] += np. random.uniform(low=- 1 , high= 1 , size= len (idxs)) 
x1 = out 

# 生成6-17之间整数的随机分布作为第二个特征
x2 = np.random.choice([ 6 , 7 , 891011121314151617 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _], p=[ 0.01 , 0.01 , 0.15 , 0.23 , 0.14 , 0.06 , 0.05 , 0.10 , 0.12 , 0.11 , 0.01 , 0.01 ], size=( 500 )) 

# 在每个样本上应用随机噪声,这样它们就不会重叠散点图中的 y 轴
idxs = np.arange( len (x2)) 
out = x2.astype( float ) 
out.flat[idxs] += np.random.uniform(low=- 1 , high= 1 , size = len (idxs)) 
x2 = 输出

# 在列表中组合特征
data_x = [x1, x2]

3.数据可视化

接下来,以下代码片段将为我们生成两个数字分布,稍后我们将使用它们在雨云图中可视化数据

fig, ax = plt.subplots(figsize=(8, 4))8 , 4 )) #根据

你拥有的特征数量为箱线图
创建颜色列表False ) # Change to the desired color and add transparency for patch, color in zip (bp[ 'boxes' ], boxplots_colors):     patch.set_facecolor(color)     patch.set_alpha( 0.4 ) # 创建小提琴图的颜色列表基于你拥有的特征数量violin_colors = [





 




'thistle' , 'orchid' ] 

# Violinplot 数据
vp = ax.violinplot(data_x, points= 500 , 
               showmeans= False , showextrema= False , showmedians= False , vert= False ) 

for idx, b in  enumerate (vp[ 'bodies ' ]): 
    # 获取图的中心
    m = np.mean(b.get_paths()[ 0 ].vertices[:, 0 ]) 
    # 修改它以便我们只看到小提琴图的上半部分
    b.get_paths ()[ 0 ].vertices[:, 1 ] = np.clip(b.get_paths()[0 ].vertices[:, 1 ], idx+ 1 , idx+ 2 ) 
    # 更改为所需的颜色
    b.set_color(violin_colors[idx]) 

# 根据你拥有的特征数量为散点图创建颜色列表
scatter_colors = [ 'tomato' , 'darksalmon' ] # idx的

散点图数据
,枚举中 的特征(data_x): # 添加抖动效果,使特征在 y 轴上不重叠    y = np.full( len (features), idx + .8 )     idxs = np.arange( len (y))     out = y.astype(
    


float ) 
    out.flat[idxs] += np.random.uniform(low=- .05 , high= .05 , size= len (idxs)) 
    y = out 
    plt.scatter(features, y, s= .3 , c=scatter_colors[idx]) 

plt.yticks(np.arange( 1 , 3 , 1 ), [ 'Feature 1' , 'Feature 2' ])   # 设置文本标签。
plt.xlabel( 'Values' ) 
plt.title( "雨云图" ) 
plt.show()

上述代码片段的结果将是以下结果:

在这里插入图片描述


总结

提示:总结:

如您所见,这为我们提供了在初始数据探索阶段我们需要了解的关于数据集的几乎所有信息。我们对总体分布、个体趋势、中位数、四分位数和异常值有一些见解。

此外,由于它非常直观,因此对于几乎没有或没有统计/数据科学背景的人来说,阅读起来会容易得多。

参考文献:

https://medium.com/mlearning-ai/getting-started-with-raincloud-plots-in-python-2ea5c2d01c11

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

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

相关文章

S7协议抓包分析(附pcap数据包)

一、S7协议概述 1、S7协议简介 S7comm(S7 通信)是西门子专有协议,可在西门子 S7-300/400 系列的可编程逻辑控制器 (PLC) 之间运行。它用于 PLC 编程、PLC 之间的数据交换、从 SCADA(监控和数据采集)系统访问 PLC 数据…

刷爆力扣之最长连续递增序列

刷爆力扣之最长连续递增序列 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&#…

代码随想录算法训练营第五十五天|392. 判断子序列、115. 不同的子序列

LeetCode 392. 判断子序列 链接:392. 判断子序列 双指针: 思路: 本题较容易,如果不用动态规划而是用双指针的办法思路会更加简单。首先两个指针fast,slow分别代表t,s的下标,快指针用于遍历长…

来浅谈一下:GraalVM下载、安装、特点、概括

文章目录前言一、GraaIVM是什么?二、GraaIVM优点三、安装GraaIVM1.GraaIVM Community版本简略2.下载3.解压4.配置变量4.1、JAVA_HOME改成graalvm的位置4.2、编辑path5、查看总结前言 GraaIVM High-performance runtime with new compiler optimizations to accele…

unity计算着色器

序 计算着色器,是什么?好像是并行计算的一个东西。 并行计算,挖矿?显卡? 那看来得先了解显卡,再了解计算着色器了。 认识显卡 显卡,小白,不懂。 显卡的印象,只是停…

批量修改文件名,图文教学,2分钟简单学会

​文件名称是文件的重要组成部分,在我们日常生活中,对文件进行命名,是经常使用到的一种功能。可是有时候需要重命名的文件实在是太多了咋办呢?有没有什么方法可以批量修改文件名? 本文将以图文教学的方式,…

为什么不建议在MySQL中使用 utf8?

MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4。 如果使用 utf8 的话,存储 emoji 符号和一些比较复杂的汉字、繁体字就会出错。 为什么会这样呢?这篇文章可以从源头给你解答。 何为字符集? 字符是各种文字和符号的…

LPA-star算法(Lifelong Planning)及相关思考

一、LPA-star算法(Lifelong Planning)简介 LPA * ( Lifelong Planning 终身规划 A * )是一种基于A * 的增量启发式搜索算法,被用来处理动态环境下从给定起始点到给定目标点的最短路径问题,即起始点和目标点是固定的。 &#xff08…

图数据库知识点1:图数据库与关系型数据库区别

文章目录 前言一、图数据库区别于其他数据库的核心是什么?二、图数据库能解决哪些问题? 1.图的优势2.目前的图的实现方式及优劣3.图的技术趋势及优势小结总结前言 《图数据库知识点》系列有20讲,每一讲中会重点分享一个图数据库知识点&#…

什么是JVM?JVM的机制与JVM自动内存管理机制,如何进行优化

1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码…

彻底搞懂MySql的B+Tree

1.什么是索引 官方定义:一种能为mysql提高查询效率的数据结构,索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。好比如,一本书,你想找到自己想看的章节内容,直接查询目录就行。这里的目录就类似索引…

华为路由器升级系统文件

欢迎关注微信公众号【厦门微思网络】。http://www.xmws.cn 组网图形 组网需求 RouterA的管理网口与用户侧主机HostA相连。要求通过BootROM菜单下载系统文件至RouterA完成系统升级。 操作步骤 1.在PC端启动FTP Server服务。 2.用串口线连接并通过Console口登录设备。 3.重启设…

Java内存模型与线程(3)

文章目录4. Java与线程4.1 线程的实现4.2 Java线程调度4.3 状态转换4. Java与线程 并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Jva里面谈论并发,大多数都与线程脱不开关系。既然我们这本书探讨的话题是Java虚拟机…

一个系列涨粉47w,小红书内容创意卷出新高度

前有双11,后有世界杯,11月注定是热闹的。图源新红_流量分析_趋势查询在此情况下, 小红书内又涌现出哪些黑马博主?有多少品牌打造出了爆品?什么样的种草玩法才能成功出圈?我们将全面分析11月榜单&#xff0c…

java面向对象最全入门笔记

Java面向对象 什么是面向对象编程? 面向:找、拿。 对象:东西。 面向对象编程:找或者拿东西过来编程。 设计对象并使用 设计类,创建对象并使用 类是什么? 类(设计图)&#xff1…

Vue Cli安装和node-sass、less-loader、sass-loader安装

一、Vue Cli安装 CLI全程是Command-Line Interface,命令行界面,俗称脚手架,可以帮我们快速的创建vue项 Vue Cli的使用必须依赖node环境和webpack 管理员方式打开cmd进行安装,安装命令: npm i -g vue/cli 查看版本…

鸢尾花数据种类预测、分析与处理、scikit-learn数据集使用、seaborn作图及数据集的划分

一、鸢尾花种类预测 Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理,Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集 鸢尾花数据集包含了 4个属性(特征值) Sepal.Length(花萼长度&#…

Linux学习-69-Linux系统启动管理

16 Linux系统启动管理 Linux 系统的启动是不需要人为参与和控制的,只要选择开机,系统就会按照设定好的方式进行启动。不过,了解系统的启动有助于我们在系统出现问题时能够快速地修复 Linux 系统。在 CentOS 6.x 中,系统的启动过程…

NoSQLBooster for MongoDB 7.1.X

最智能的 MongoDB IDE NoSQLBooster 是 MongoDB v2.6-6.0 的跨平台 GUI 工具,它提供了内置的 MongoDB 脚本调试器MongoDB 脚本调试器、全面的服务器监控工具、链接流畅查询、SQL 查询、查询代码生成器、任务调度、ES2020 支持和高级智能感知体验。 嵌入式 MongoDB 外…

网络面试-0x17如何立即诶OSI模型和TCP/IP协议

OSI(Open System Interconnect) 开放式通信系统互连参考模型。 每一层实现各自的功能和协议,并完成与相邻层的接口通信。即每一层扮演固定的角色,互不打扰。 应用层 ⑦ 作用:通过应用程序间的交互来完成特定的网络应用。 定义了应用程序之间…