前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R 热图绘制heatmap①

R 热图绘制heatmap①

作者头像
用户1359560
发布2018-08-27 11:37:16
1.1K0
发布2018-08-27 11:37:16
举报
文章被收录于专栏:生信小驿站
R.package

  • heatmap():用于绘制简单热图的函数
  • heatmap.2():绘制增强热图的函数
  • d3heatmap:用于绘制交互式热图的R包
  • ComplexHeatmap:用于绘制、注释和排列复杂热图的R&bioconductor包(非常适用于基因组数据分析)
首先使用ggplot2画简单热图
代码语言:javascript
复制
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列。
代码语言:javascript
复制
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

  • 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') #修改图例名字以及图中颜色
代码语言:javascript
复制
大神Y叔也有画热图的ggplot2讲解,链接:听说你还不会画heatmap
https://guangchuangyu.github.io/cn/2017/09/dose-simplot/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.01.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R.package
  • 首先使用ggplot2画简单热图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档