R 热图绘制heatmap①

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列。
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') #修改图例名字以及图中颜色
大神Y叔也有画热图的ggplot2讲解,链接:听说你还不会画heatmap
https://guangchuangyu.github.io/cn/2017/09/dose-simplot/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏中国白客联盟

识别验证码继续爆破后台(三)

有的时候,并不是说所有验证码用api或者tesseract都可以正确识别出来的,还是需要经过相关训练,让tesseract知道你想让它识别出来的验证码。

17340
来自专栏深度学习与计算机视觉

OpenCV ImageWatch插件安装与使用说明

在使用OpenCV时,如果我们想看到一个图片的处理效果,只能把它显示出来,而插入断点调试也只能看到Mat类型变量中的一些信息,看不到图片效果。而ImageWat...

24670
来自专栏编程语言

Python:pygame的初步使用(pygame.draw)(二)

11220
来自专栏友弟技术工作室

Django实现验证码

Django实现验证码 背景知识 1. 验证码的作用 防恶意破解密码:防止,使用程序或机器人恶意去试密码.为了提高用户的体验,用户输入错误以后,才会要求输入验证...

758110
来自专栏瓜大三哥

形态学滤波(五)

形态学滤波(五) 之一维形态学腐蚀/膨胀子模块设计 对于图像处理而言,是纵向和横向两个维度的处理。我们知道,对于任何二维的操作,都可以分解为一维方向的操作来简化...

23860
来自专栏生信小驿站

R语言之可视化②点图

第一步:准备数据,使用的数据包括三列,len长度,supp是分类变量,dose是0.5mg,1mg和2mg三个变量。

19040
来自专栏Python小屋

Python使用matplotlib填充图形指定区域

本文代码重点在于演示Python扩展库matplotlib.pyplot中fill_between()函数的用法。 import numpy as np im...

30130
来自专栏数据小魔方

粗边面积图

今天给大家分享的是一种在财经杂志上常见的粗边面积图。 ▽▼▽ 这种图表制作起来步骤并不复杂,主要是排版和图表元素格式化需要一些精加工。 ? ●●●●● 下面是制...

27250
来自专栏我是攻城师

关于opencv图片颜色不能正常在matplotlib中显示的问题

opencv默认的彩色图片的加载方式是按照BGR加载的,直接用opencv的函数展示是没有问题的,但是有时候我们想把多张图片放在一起展示,这时候用matplot...

10510
来自专栏wym

opencv下imread函数返回值

openCV的imread()函数和imwrite()函数能支持各种静态图像文件格式。

42520

扫码关注云+社区

领取腾讯云代金券