ggplot2 绘制热图

是时候改变一下思维了,我们来看另一种热图绘制方式。

library(ggplot2)
library(ggtree)
library(aplot)
library(tidyr)
library(magrittr)
p <- scale(mtcars) %>% data.frame()
#绘制行聚类树
phr <- hclust(dist(p)) %>% ggtree(layout="rectangular", branch.length="none")
#绘制列聚类树
phc <- hclust(dist(t(p))) %>% ggtree() + layout_dendrogram()
p$mtxars <- rownames(p)
#宽表转长表
p1 <- gather(p, 1:11, key="condition", value='expr')
#绘制热图
pp <- ggplot(p1,aes(condition,mtxars,fill=expr)) + geom_tile()+
  theme_minimal()+
  scale_fill_viridis_c() +
  scale_y_discrete(position="right")+
  xlab(NULL) + ylab(NULL)
#利用aplot包将聚类树与热图拼接
pp %>% insert_left(phr, width=.1) %>%
  insert_top(phc, height=.1) 

结果如下,大家可以根据自己需求个性化定制。
heatmap

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值