欢迎关注R语言数据分析指南
❝本节将通过Nature上的一篇新论文,带大家认识一类带有多层嵌套注释、风格稍有特色的热图。论文作者提供了图表对应的数据与代码,但小编在实测后发现——原代码并不能直接复现论文中的图表。于是,小编对代码进行了多处调整与优化,最终实现了高保真复刻,并在部分细节上略有改动。本文仅代表个人理解与实现方式,供大家参考与学习。有需要学习R语言绘图的朋友可关注文末介绍购买小编的R绘图文档。购买前请咨询,零基础不要买。
论文信息
Proteotoxic stress response drives T cell exhaustion and immune evasion
Wang, Y., Ma, A., Song, NJ. et al. Proteotoxic stress response drives T cell exhaustion and immune evasion. Nature (2025). https://doi.org/10.1038/s41586-025-09539-1
论文代码
https://zenodo.org/records/16413641,不知道为啥作者即然选择了提供分析代码,但却只给了fig1的代码。
论文原图
常规的热图基本都是使用直角色块来进行填充,但是此图则是通过geom_shape来定义色块的角度使其显得圆润些,不愧是nature论文就是讲究,除此之外此图还设置了双层条带注释,直观明了。
实际运行论文所提供的代码,结果却如下所示
library(readxl)
library(tidyverse)
library(dplyr)
library(ggforce)
gggplot(df_long, aes(x = Sample, y = Pathway, fill = Score)) +
geom_shape(
# aes(x0 = as.numeric(Sample), y0 = as.numeric(Pathway)),
radius = unit(0.2, "cm"),
expand = unit(0.32, "cm")
# corner = 0.25,
# shape = 1L
) +
scale_fill_gradient2(low = "#69AADB", mid = "white", high = "#D45590", midpoint = 0) +
theme_minimal(base_size = 10) +
theme(
axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5),
axis.text.y = element_text(size = 10),
axis.title = element_blank(),
panel.grid = element_blank()
)
跟原图比较可以发现主要是顶部的注释条带没有添加,那由此推测这部分内容可能是非代码生成后期添加的。但是若要通过代码来实现此部分内容那也是可以实现的,之前小编已经通过多篇文章介绍过legendry包添加注释条带的方法,但是此图与之前的案例稍微有所不同,该图是嵌套式注释条带,因此还是需要稍微修改一番代码的。下面是小编根据原图调整代码后生成的图,可以看到已经非常接近原图了。
仿图
那么绘制这个图最大的难点是在哪里呢
❝现成的代码是没有的
论文提供的代码是无法实现的
无论是微调代码还是后期AI编辑都是要费心的
从数据整理到注释条带添加怎么来的
怎么调整数据,定义图层,设定参数的
怎么考虑样本顺序与注释条带添加,配色、角度、主题这些细节的
怎么一步步去完成这些步骤的
这份代码是值得学习的
关注下方公众号下回更新不迷路
购买介绍
❝本节介绍到此结束,有需要学习R数据可视化的读者欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档,2025年购买将获取2025年更新的绘图内容,同时将赠送2024年的绘图文档内容,其余内容无。
更新的绘图内容包含数据+代码+注释文档+文档清单,小编只分享案例文档,不额外回答问题,无答疑服务,更新截止2025年12月31日结束,后续不在进行任何更新,零基础基础一般不推荐买。
在线目录大纲
淘宝店铺
2025年更新案例图展示


























