1写在前面
画热图一直是一件既简单又复杂的事情,想画个普通的热图还是挺简单的,但是复杂热图就要费事的多了。😂
之前一直使用的complexheatmap
,还是比较好用的,但是最近发现了一个更简单的解决方案,superheat
。😏
详细介绍下这个包吧,大家用起来哦。🥰
今天的BGM
是Shane Nicholson
的Summer Dress
,夏日快乐,各位!~🏊🏻♂️
2用到的包
# devtools::install_github("rlbarter/superheat")
library(superheat)
library(tidyverse)
3示例数据
data("mtcars")
DT::datatable(mtcars)
![alt](https://i-blog.csdnimg.cn/blog_migrate/3a97f6464cd5bb9adfc94b87c74e81c5.png)
4基础绘图
superheat(mtcars,
# labels 参数
left.label.size = 0.4,
bottom.label.size = 0.1,
# scale 参数
scale = T)
![alt](https://i-blog.csdnimg.cn/blog_migrate/34aac572be32d9cb6b9478da64aeb3df.png)
5对行和列进行排序
5.1 自动排序
需要注意的是,当当矩阵有缺失值时,可能会出现错误。🤣
superheat(mtcars,
pretty.order.rows = T,
pretty.order.cols = T,
scale = T)
![alt](https://i-blog.csdnimg.cn/blog_migrate/5e7cc3b370e654ac0272a1adce549c4c.png)
5.2 指定列或行的顺序
这里我们试着制定行按照示例数据中的mpg
排列。
superheat(mtcars,
order.rows = order(mtcars$mpg),
scale = T)
![alt](https://i-blog.csdnimg.cn/blog_migrate/3f4bae5008144f27c953db2ebcf3ceab.png)
6配色
在supherheat
中,默认配色是viridis
,我个人觉得还是蛮不错的。😘
6.1 配色示例一
我们试试red
主题。😂
superheat(mtcars,
scale = T,
heat.col.scheme = "red")
![alt](https://i-blog.csdnimg.cn/blog_migrate/e2f3e7c5ef618bb7b3b0738356c573b8.png)
6.2 配色示例二
我们试着调一下经典低中高
三色配色吧。😏
superheat(mtcars,
scale = T,
heat.pal = c("#b35806", "white", "#542788"))
![alt](https://i-blog.csdnimg.cn/blog_migrate/86a81d8ae15a70292da281799cd6484e.png)
6.3 颜色限制
这里可以使用heat.lim
参数定义颜色图的最小值和最大值。😏
比如说,如果我只想显示从-1
到2
的值,那么我会设置heat.lim = c(-1, 2)
。🫠
这样的话范围之外的每个值都将显示为缺失。🤒
superheat(mtcars,
scale = T,
heat.lim = c(-1, 2))
![alt](https://i-blog.csdnimg.cn/blog_migrate/7021ab7ccf424a5ad2158510957c5769.png)
6.4 极值的处理
如果希望将heat.lim
范围之外的值显示为范围内的最大/最小颜色
(而不是作为NA
),那么可以指定参数extreme.values.na = FALSE
。😘
superheat(mtcars,
scale = T,
heat.lim = c(-1, 2),
extreme.values.na = F)
![alt](https://i-blog.csdnimg.cn/blog_migrate/2252a9ebab7b7d7b426a400b62c20457.png)
7缺失值颜色
7.1 制造NA
mtcars.missing <- mtcars
mtcars.missing[sample(1:nrow(mtcars), 5),
sample(1:ncol(mtcars), 5)] <- NA
7.2 更改NA颜色
我们试着把缺失值改成白色。🥰
superheat(mtcars.missing,
scale = T,
heat.na.col = "white")
![alt](https://i-blog.csdnimg.cn/blog_migrate/5e6eacd73bd5f7d6e91c081ac0612457.png)
![alt](https://i-blog.csdnimg.cn/blog_migrate/6bbab2725a2016ba46236daaeb1eccb4.png)
点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰
📍 🤩 LASSO | 不来看看怎么美化你的LASSO结果吗!?
📍 🤣 chatPDF | 别再自己读文献了!让chatGPT来帮你读吧!~
📍 🤩 WGCNA | 值得你深入学习的生信分析方法!~
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......
本文由 mdnice 多平台发布