基于ggdensity包的等高线绘制
创始人
2025-05-29 21:44:55
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() 基本就可以满足需求。

相关内容

热门资讯

罗博特科:不存在被英伟达、台积... 6月10日消息,罗博特科在互动平台表示,公司目前经营正常,不存在传言中所说被英伟达、台积电、华为、s...
月入数万元,年轻人把「梗」做成... 「核心提示」2元的“哈基米”豆浆,为何能撬动涨停板?解码“抽象经济”的流量魔力。作者 |高泽邢昀如果...
百度旗下昆仑芯已秘密赴港IPO... 百度昆仑芯超节点。 南都记者 杨柳 摄百度分拆昆仑芯独立上市更进一步。1月2日,百度集团公告披露,2...
创出多项历史新高!2025期货... 时序轮转,华章日新。2025年的中国期货市场与期货业,在改革深化的浪潮中踏浪前行,于高质量发展的赛道...
宗馥莉重任宏胜集团法定代表人,... 红星资本局1月2日消息,国家企业信用信息公示系统显示,2025年12月26日,宏胜饮料集团有限公司(...
亏损25亿的农商银行,多名高管... 在银行业“躺赚”之时,内蒙一家总资产700多亿的农商银行,2024年竟然出现了25亿的巨额亏损。这家...
​2025年A股牛熊榜 :谁在... 文/每日财报 南黎2025年资本市场以来了不错的年景。沪指全年上涨18.41%,科创50指数涨35....
狂砸3191亿港元!2025港... 2025年已经收官,港股全年回购数据正式出炉。券商中国记者根据数据统计,2025年全年有307家H股...
车企2026开年大促,含16个... 红星资本局1月2日消息,2026年开年,宝马大范围下调建议零售价,为车市竞争再添一把火。据红星资本局...
三花智控:生意不起眼,凭什么总... 关注人形机器人产业链,就无法绕过三花智控。尤其是特斯拉Optimus距离量产阶段越来越近,三花智控作...