R.package
- heatmap():用于绘制简单热图的函数
- heatmap.2():绘制增强热图的函数
- d3heatmap:用于绘制交互式热图的R包
- ComplexHeatmap:用于绘制、注释和排列复杂热图的R&bioconductor包(非常适用于基因组数据分析)
首先使用ggplot2画简单热图
data <- as.data.frame(matrix(rnorm(9*10),9,10))
rownames(data) <- paste("Gene", 1:9, sep="_")
colnames(data) <- paste("sample", 1:10, sep="_")
library(reshape2)
library(ggplot2)
data$ID <- rownames(data)
data_m <- melt(data, id.vars=c("ID"))
View(data_m)
- data为9行10列的标准正太分布数据。
- 使用paste对行列名简单命名。
-
melt函数将data转化为gene-id列,sample-variable列,以及表达值-value列。
![img_8c09f48d187f52f869f996aeebde182c.png](https://i-blog.csdnimg.cn/blog_migrate/dc8c897638fe069b97bacf78010ed4a0.png)
p <- ggplot(data_m, aes(x=variable,y=ID)) +
xlab("samples") + theme_classic() + theme(axis.ticks = element_blank(),
axis.line = element_blank()) +
theme(panel.grid.major = element_blank()) +
theme(legend.key=element_blank()) +
theme(axis.text.x=element_text(angle=45,hjust=1, vjust=1)) +
theme(legend.position="top") +
geom_tile(aes(fill=value)) +
scale_fill_gradient2("Expression",
low = "green",
high = "red",
mid = "black")
p
![img_a4b3b96a2ef43d52570b154390e65e31.png](https://i-blog.csdnimg.cn/blog_migrate/5e0092cc8b5c186cd192fa7b7468df33.png)
- theme_classic() + #去掉灰快
- theme(axis.ticks = element_blank(),
axis.line = element_blank()) + #去掉边框- xlab('row name') +
ylab('column name') #更改行名和列名- scale_x_discrete(labels = 1:10, breaks = 1:10) +
scale_y_discrete(labels = 1:10, breaks = 1:10) #修改行和列- scale_fill_gradient2('legend name',
low = 'blue', high = 'red', mid = 'white') #修改图例名字以及图中颜色
大神Y叔也有画热图的ggplot2讲解,链接:听说你还不会画heatmap
https://guangchuangyu.github.io/cn/2017/09/dose-simplot/