R 热图绘制heatmap①

简介: R.packageheatmap():用于绘制简单热图的函数heatmap.2():绘制增强热图的函数d3heatmap:用于绘制交互式热图的R包ComplexHeatmap:用于绘制、注释和排列复杂热图的R&bioconductor包(非...

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_f0939b04d5b698c1e87b32a9519d51e2.png
img_8c09f48d187f52f869f996aeebde182c.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
  • 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/
目录
相关文章
|
XML 数据挖掘 Linux
服务器丨Linux安装测试单细胞分析软件copykat,遇到的常见报错与解决思路与方法
服务器丨Linux安装测试单细胞分析软件copykat,遇到的常见报错与解决思路与方法
|
中间件 关系型数据库 Java
MySQL数据库分库分表方案
MySQL数据库分库分表方案
556 0
MySQL数据库分库分表方案
|
8月前
|
缓存 自然语言处理 安全
快速调用 Deepseek API!【超详细教程】
Deepseek 强大的功能,在本教程中,将指导您如何获取 DeepSeek API 密钥,并演示如何使用该密钥调用 DeepSeek API 以进行调试。
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的最佳实践
在现代云计算环境中,自动化运维成为保障系统稳定性与提升效率的关键。本文深入探讨了如何利用Docker容器化技术和Kubernetes容器编排工具构建一个高效、可靠的自动化运维体系。文中不仅介绍了相关的技术原理,还结合具体案例分析了实施过程中的常见问题及解决方案,为读者提供了一套行之有效的最佳实践指南。
|
Ubuntu Python
ubuntu升级Python版本
现在,你已成功升级了Python版本并可以使用新版本进行开发和运行程序。
914 1
|
存储 安全 编译器
C++智能指针:更简单、更高效的内存管理方法
C++智能指针:更简单、更高效的内存管理方法
657 0
|
数据挖掘 atlas 数据库
单细胞工具箱|singleR-单细胞类型自动注释
单细胞工具箱|singleR-单细胞类型自动注释
486 0
|
存储 数据可视化 数据挖掘
跟着Nature Communications学作图:R语言ggplot2柱形图展示GO富集分析的结果
跟着Nature Communications学作图:R语言ggplot2柱形图展示GO富集分析的结果
|
JSON 数据可视化 网络协议
【开源的串口可视化工具——Serial Studio】
【开源的串口可视化工具——Serial Studio】
9490 0
|
数据可视化 数据挖掘 图计算
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(下)
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(下)
1886 0
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(下)