R绘图--峰峦图/山脊图/ggridges包

news2024/9/20 3:20:59

山脊图是部分重叠的线图,可产生山脉的印象。它们对于可视化分布随时间或空间的变化非常有用。

绘图

加载包和数据

# install.packages("ggridges")
# 加载包
library(ggplot2)
library(ggridges)
library(viridis)
library(tidyverse)

# 准备输入数据
data(lincoln_weather)
pdata <- lincoln_weather[,c(1,3,24)]
colnames(pdata)

数据介绍

第二列是X年X月X天的平均气温值,第三列是月份。目标是展现每个月份的气温分布密度曲线。

示例数据

情景一

x为连续型变量,y为分类变量,按照y分类进行颜色填充。

当你拥有一个连续型变量,一个分类变量,并且要按分类变量填充颜色时,适用此种情形。

# 情景一:x为连续型变量,y为分类变量---------------------------------------------------
# 按照y分类进行颜色填充
ggplot(pdata, aes(x = `Mean Temperature [F]`, y = Month,fill=Month)) + 
  geom_density_ridges(color='white', #设置概率密度线的填充颜色
                      rel_min_height = 0.005, # 剪掉拖尾的尾巴,相对于任何密度曲线的最高点的百分比截止值
                      scale = 2)+ #设置山脊高度
  scale_fill_viridis(option="viridis", discrete=TRUE)+ #设置颜色
  theme_minimal()+ #设置主题
  theme(legend.position = 'None')+ #取消图例
  labs(title = 'Temperatures in Lincoln NE in 2016') #设置标题
ggsave('plot1.pdf',width = 5,height = 4)

plot1-01

情景二

x为连续型变量,y为分类变量,按照x值进行颜色填充。

当你拥有一个连续型变量,一个分类变量,并且要按连续型变量填充颜色时,适用此种情形。

# 情景二:x为连续型变量,y为分类变量----------------------------------------------------
# 按照x值进行颜色填充
ggplot(pdata, 
       aes(x = `Mean Temperature [F]`, y = Month, fill = stat(x))) +
  geom_density_ridges_gradient(rel_min_height = 0.01, # 剪掉拖尾的尾巴,相对于任何密度曲线的最高点的百分比截止值
                               scale = 3) + #设置山脊高度
    scale_fill_viridis_c(name = "Temp. [F]", option = "C")+ #设置颜色
  labs(title = 'Temperatures in Lincoln NE in 2016')+ #设置标题
  theme_minimal() #设置主题
ggsave('plot2.pdf',width = 5,height = 4)

plot2

情景三

x为连续型变量,y为分类变量,height为x的密度值(连续型变量),按照y分类进行颜色填充。

当你拥有一个连续型变量,一个分类变量,以及连续型变量的密度值,并且要按分类变量填充颜色时,适用此种情形。

 

# 情景三:x为连续型变量,y为分类变量,height为x的密度值(连续型变量)---------------------
# 按照y分类进行颜色填充

# 手动计算数值型变量的概率密度值
pdata2 <- pdata %>%
  group_by(Month) %>%
  group_modify(~ ggplot2:::compute_density(.x$`Mean Temperature [F]`, NULL)) %>%
  rename(`Mean Temperature [F]` = x)

# 绘图
ggplot(pdata2, 
       aes(x = `Mean Temperature [F]`, y = Month, height = density,fill=Month)) + 
  geom_density_ridges(stat = "identity")+
  scale_fill_viridis(option="viridis", discrete=TRUE)+
  theme_minimal()+
  theme(legend.position = 'None')
ggsave('plot3.pdf',width = 5,height = 4)

plot3

情景四

概率密度图+原始数据点

# 概率密度图+原始数据点---------------------------------------------
ggplot(pdata, aes(x = `Mean Temperature [F]`, y = Month,fill=Month)) + 
  geom_density_ridges(color='black',
                      rel_min_height = 0.001,
                      scale = 1,
                      jittered_points = TRUE, #显示抖动点
                      alpha=0.7, #设置透明度
                      point_size=0.7)+ #设置点的大小
  scale_fill_viridis(option="viridis", discrete=TRUE)+
  theme_minimal()+
  theme(legend.position = 'None')+
  labs(title = 'Temperatures in Lincoln NE in 2016')
ggsave('plot4.pdf',width = 5,height = 4)

plot4

「总结」以上就是山脊图绘制概率密度曲线时的使用情景分类,总结来说情景1、情景2适用于没有计算概率密度值时使用,场景3适用于已经计算了概率密度值时使用。

山脊图也不仅仅只能应用于绘制概率密度曲线,在场景三中,只要能提供相应类型的数据,就可以绘制山脊图。

示例获取

示例代码及数据获取:

方式①:转发此文至朋友圈,所有人可见,保留1h,集6个赞,文案附“推荐关注”。1h后截图发送后台,并留言“20240117山脊图”。

方式②:关注公众号,文末点击“喜欢作者”,赞赏本文,金额随意。截图发送后台,并留言“20240117山脊图”。

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

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

相关文章

Java发送邮件 启用SSL

使用的maven依赖: <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.4.7</version> </dependency> 配置文件mail.properties如下: # 邮箱配置 email.username=your-email@exa…

const成员函数 以及 取地址及const取地址操作符重载

目录 const成员函数 结论&#xff1a; 取地址及const取地址操作符重载 const成员函数 将const 修饰的 “ 成员函数 ” 称之为 const成员函数 &#xff0c; const 修饰类成员函数&#xff0c;实际修饰该成员函数的&#xff08;*this&#xff09; &#xff0c;表明在该成员函数…

嵌入式Linux开发实操(十七):Linux Media Infrastructure userspace API

视频和无线电流媒体设备使用的Linux内核到用户空间API,包括摄像机、模拟和数字电视接收卡、AM/FM接收卡、软件定义无线电(SDR)、流捕获和输出设备、编解码器设备和遥控器。典型的媒体设备硬件如下: 媒体基础设施API就是用于控制此类设备的,分五个部分。 第一部分V4L2 API…

【Interconnection Networks 互连网络】Dragonfly Topology 蜻蜓网络拓扑

蜻蜓拓扑 Dragonfly Topology 1. 拓扑参数2. Topology Description 拓扑描述3. Topology Variations 拓扑变体 蜻蜓拓扑 Dragonfly Topology 1. 拓扑参数 Dragonfly拓扑参数&#xff1a; N N N: 网络中终端(terminal)的总数量 p p p: 连接到每个路由器的终端数量 a a a: 每…

【网站项目】“最多跑一次”小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

微调Llama3实践并基于Llama3构建心理咨询EmoLLM

Llama3 Xtuner微调Llama3 EmoLLM 心理咨询师

开启智慧之旅,AI与机器学习驱动的微服务设计模式探索

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#x1f525;&#xff1a;探索设计模式的魅力&#xff1a;开启智慧…

vlan的学习笔记1

vlan&#xff1a; 1.一般情况下:以下概念意思等同: 一个vlan一个广播域 一个网段 一个子网 2.一般情况下: &#xff08;1&#xff09;相同vlan之间可以直接通信&#xff0c;不同vlan之间不能直接通信! &#xff08;2&#xff09;vlan技术属于二层技术&…

C++异步回调示例:多线程执行任务,主线程通过回调监测任务状态

1、回调函数 回调函数定义&#xff1a;把函数的指针或者地址作为参数传递给另一个参数&#xff0c;当这个指针被用来调用其所指向的函数时&#xff0c;那么这就是一个回调的过程&#xff0c;这个被回调的函数就是回调函数。回调函数不是由该函数的实现方直接调用&#xff0c;而…

如何应对MySQL单表数据量过大:垂直分表与水平分表策略解析二

http://t.csdnimg.cn/AtW6Q 第三种办法&#xff1a; 同时结合ID取模分表和ID范围分表的方案&#xff0c;我们可以先用ID范围去分表&#xff0c;然后在某个ID范围内引入取模的功能。比如以前0到500万是user_0表&#xff0c;现在可以在这个范围里再分成多个表&#xff0c;比如引…

前端常用的数据加密方式

前端开发中&#xff0c;数据安全是至关重要的一个方面。数据加密是保护用户隐私和信息安全的关键方法之一。 前端常用的数据加密方式涵盖了对传输数据的加密、存储数据的加密以及客户端与服务器端之间通信的加密。 1. 对称加密算法 对称加密算法使用相同的密钥进行加密和解密…

存储过程的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中&#xff0c;经常会需要查询数据库中已有的存储过程或者某一个存储过程的内容&#xff0c; 下面就介绍-下如何查询存储过程。 这需要使用到数据字典 user_sou…

Jupyter Notebook更改默认打开的浏览器和工作目录

Jupyter Notebook更改工作目录 打开cmd&#xff0c;输入&#xff1a;jupyter notebook --generate-config&#xff0c;可以得到Jupyter Notebook配置文件的路径&#xff0c;找到路径下的jupyter_notebook_config.py文件&#xff0c;用记事本或者Sublime打开文件 找到&#xff…

[阅读笔记25][WebArena]A Realistic Web Environment for Building Autonomous Agents

这篇论文提出了WebArena这个环境与测试基准&#xff0c;在24年1月发表。 之前的agent都是在一些简化过的合成环境中测试的&#xff0c;这会导致与现实场景脱节。这篇论文构建了一个高度逼真、可复现的环境。该环境涉及四个领域&#xff1a;电子商务、论坛讨论、软件开发和内容管…

SpringBoot 集成Nacos注册中心和配置中心-支持自动刷新配置

SpringBoot 集成Nacos注册中心和配置中心-支持自动刷新配置 本文介绍SpringBoot项目集成Nacos注册中心和配置中心的步骤&#xff0c;供各位参考使用 1、配置pom.xml 文件 在pom.xml文件中定义如下配置和引用依赖&#xff0c;如下所示&#xff1a; <properties><pr…

YOLOv9改进策略 | SPPF篇 | 利用RT-DETR的AIFI模块替换SPPFELAN助力小目标检测涨点

一、本文介绍 本文给大家带来是用最新的RT-DETR模型中的AIFI模块来替换YOLOv9中的SPPFELAN。RT-DETR号称是打败YOLO的检测模型&#xff0c;其作为一种基于Transformer的检测方法&#xff0c;相较于传统的基于卷积的检测方法&#xff0c;提供了更为全面和深入的特征理解&#x…

FairAdaBN论文速读

FairAdaBN: Mitigating Unfairness with Adaptive Batch Normalization and Its Application to Dermatological Disease Classification 摘要 深度学习在医疗研究和应用中变得越来越普遍&#xff0c;同时涉及敏感信息和关键诊断决策。研究人员观察到不同人口统计属性子组之间…

scratch图章画图 2024年3月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch图章画图 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、p…

STM32应用开发——BH1750光照传感器详解

STM32应用开发——BH1750光照传感器详解 目录 STM32应用开发——BH1750光照传感器详解前言1 硬件介绍1.1 BH1750简介1.2 硬件接线 2 软件编程2.1 软件原理2.1.1 IIC设备地址2.1.2 IIC读写2.1.3 BH1750指令集2.1.4 BH1750工作流程2.1.5 BH1750测量模式 2.2 测试代码2.3 运行测试…