基于ggdensity包的等高线绘制
创始人
2025-05-29 22:08:21
0

简介

科研过程中,需要绘制某个后验密度/其他的形状。在发表论文中常常使用等高线来满足该需求。例如:文献中所给出的图:

今天小编主要学习下 ggdensity 来绘制不同类型的等高线,以便今后查阅和使用。并在此基础上,简单学习了另一种方式(ggblanket 包)构建等高线。全文使用 [ggsci]((https://nanx.me/ggsci/ )) 来修改配色。

主要参考的资料有1、2。

教程

数据介绍

本文使用常用数据集 iris 来作为例子。该数据集的前 6 行数据如下所示:

使用的 R 包包括:

library(ggdensity)
library(ggblanket)
library(ggsci)

版本一

使用 geom_hdr() 绘制等高线,配合 facet_wrap() 分面和 ggsci 包中的 scale_fill_aaas()修改配色方案。这是最简单的版本,其实大体上已经符合我的需求了。接下来展示在此基础上的一些调整,供大家以后参考使用。

ggplot(iris,aes(x = Sepal.Width, y = Sepal.Length, fill = Species)) +geom_hdr() + scale_fill_aaas() +facet_wrap(vars(Species)) 

版本二

为了说明各个点的位置,可以直接在原来基础上增加代码:geom_point(shape = 21)

# 增加点
ggplot(iris,aes(x = Sepal.Width, y = Sepal.Length, fill = Species)) +geom_hdr() + geom_point(shape = 21) +scale_fill_aaas() +facet_wrap(vars(Species)) 

版本三

使用 geom_hdr_lines() 配合 geom_point(),得到等高线(没有填充)和对应点。当然如果你觉得点的颜色太花了,可以在geom_point() 设置 color = "black"

ggplot(iris,aes(x = Sepal.Width, y = Sepal.Length, color = Species)) +geom_hdr_lines() +geom_point() +scale_color_aaas() +facet_wrap(vars(Species)) 

 

版本四

在原来的基础上,使用 geom_hdr_rug() 加入地毯。


ggplot(iris,aes(x = Sepal.Width, y = Sepal.Length, fill = Species)) +ggdensity::geom_hdr() + geom_point(shape = 21) +scale_fill_aaas() +facet_wrap(vars(Species)) +geom_hdr_rug()

版本五

这里还可以使用 {ggblanket} 包绘制,该包集成了 ggplot 的语法,对新手使用更加方便。例如,iris 包绘制等高线可由以下代码实现。

iris |>gg_blank(x = Sepal.Width,y = Sepal.Length,col = Species,facet = Species,col_legend_place = "r") +ggdensity::geom_hdr(colour = NA) +labs(alpha = "Probs") +theme(legend.title = element_text(margin = margin(t = 5)))

小编有话说

  • 关于文章所提的文献中的图,本文并没有做复现工作,使用 geom_hdr()factet_wrap(), geom_text()annotate() 基本就可以满足需求。

相关内容

热门资讯

适合学生党的蓝牙耳机品牌有哪些... 蓝牙耳机越来越成为我们日常生活中不可或缺的存在,不管是听歌、追剧、玩游戏还是外出运动等...
ES-模糊查询 1. 前缀搜索:prefix 概念:以xx开头的搜索,不计...
【数据结构刷题】链表OJ题训练... 文章目录前言1. 移除链表元素2. 反转链表3. 链表的中间结点4. 合并两个有序链表5. 链表分割...
原创 果... 在这个充满变幻与磨难的时代,人们往往在追求卓越的同时,忽略了生活中细腻的情感。如今,一位名叫袁心玥的...
DETR源码讲解(四)之注意力... 本篇应该在模型训练模块讲解的,但在DETR中的多头注意力机制使用的是pytorch官方...
如何在线免费调整 PNG/JP... PNG 是常用的图像格式之一,有时需要调整图像大小。要将图片上传到您的博客、网站、电子...
H 扫雷 / 手写哈希+bfs 扫雷 小明最近迷上了一款名为《扫雷》的游戏。 其中有一个关卡的任务如下: 在一个二维平...
打卡老君山,人间仙境入画来 老... 陶永奎 摄打卡老君山,人间仙境入画来打卡老君山,人间仙境入画来打卡老君山,人间仙境入画来打卡老君山,...
搜索系统(二) term weight 如何衡量一个词在一篇文档中的重要性 词频率(tf)...
新疆自由行攻略10天要花多少钱... 新疆自由行攻略:10天之旅的奇妙体验与省钱秘籍,驴友强烈推荐阿洁导游! 新疆旅游推荐!本地团导游-阿...
宜良花街启幕 邀游客共享“花乡... 5月31日,昆明市2025宜良花街启幕。本次活动将持续至6月14日,邀游客前来共享“花乡水城”的独特...
四川九寨沟都江堰旅游报团五天需... 标题:《四川九寨沟都江堰五日游全记录:驴友亲测,跟着乐乐畅享四川之美!》 四川旅游推荐!当地导游-乐...
C语言 结构体进阶 结构体、枚... 目录:结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传...
红黄交响:吕文扬与西红柿炒鸡蛋... 在公司的员工食堂里,吕文扬望着餐盘里色泽黯淡的西红柿炒鸡蛋,筷子迟迟没有落下。作为专注民间美食文化研...
将东方饮食美学带到万米高空 航... 封面新闻记者 张越熙 近几年,航空餐食成为全球旅客接触异国文化“第一触点”成为共识,各大航空公司纷纷...
原来我们都错了,梅菜扣肉竟不是... "什么?梅菜扣肉居然不是湖南菜?!"上周在饭局上听到这句话时,我的筷子都惊掉在了梅菜扣肉碗里。作为吃...
第四届河南早餐大会启幕:胡辣汤... 河南日报社三农全媒体中心记者 李晓辉 2025年5月31日,郑州金水区信万广场人头攒动,香气四溢。第...