R 实战| 几种常用的绘制离散变量热图/方块图/华夫图的方法

  • 前言

  • 常用方法

    • geom_tile

    • ggwaffle

    • ComplexHeatmap

  • 总结

  • 参考

  • 往期

前言

多组学文章经常出现非连续变量的热图或者叫格子图。举几个例子:

以上两个图都来自2021.09的一篇Cell,标题是Proteogenomic characterization of pancreatic ductal adenocarcinoma。今天就不细讲这两幅图了。这种图给我们展示离散/分类变量的差异提供了一个思路。今天就简单介绍几种常用的画这种图的方法。

常用方法

构建一个分类变量组成的示例数据。

library(ggplot2)
library(tidyverse)
library(reshape2)
library(RColorBrewer)
clinical.df=data.frame(patient=paste("P",seq(1:15),sep = ""),age=sample(c("young","old"),15,replace = T),gender=sample(c("male","female"),15,replace = T),symptom=sample(c("mild","moderate","severe"),15,replace = T),RNAseq=sample(c("yes","no"),15,replace = T),WES=sample(c("yes","no"),15,replace = T)
)
head(clinical.df)
> head(clinical.df)patient   age gender  symptom RNAseq WES
1      P1   old female moderate    yes  no
2      P2   old   male moderate    yes  no
3      P3   old   male moderate    yes yes
4      P4 young female   severe    yes yes
5      P5   old female moderate     no  no
6      P6 young   male moderate     no  no
# 长宽转换 已备作图
clinical.df2=melt(clinical.df,id="patient")
head(clinical.df2)
> head(clinical.df2)patient variable value
1      P1      age   old
2      P2      age   old
3      P3      age   old
4      P4      age young
5      P5      age   old
6      P6      age young

geom_tile

Color<-brewer.pal(9, "Set3") # 设置颜色
# 设置因子顺序
clinical.df2$patient=factor(clinical.df2$patient,levels = paste("P",seq(1:15),sep = ""))
clinical.df2$variable=factor(clinical.df2$variable,levels = c("WES","RNAseq","symptom","gender","age"))
ggplot(clinical.df2, aes(x = patient, y = variable, fill = value)) +geom_tile(color = "white", size = 0.25) +scale_fill_manual(name = "Category",#labels = names(sort_table),values = Color)+theme(#panel.border = element_rect(fill=NA,size = 2),panel.background = element_blank(),plot.title = element_text(size = rel(1.2)),axis.title = element_blank(),axis.ticks = element_blank(),legend.title = element_blank(),legend.position = "right")

ggwaffle

devtools::install_github("liamgilbey/ggwaffle") # 下载包
library(ggwaffle)
ggplot(clinical.df2, aes(patient, variable, fill = value)) + geom_waffle()+scale_fill_manual(name = "Category",#labels = names(sort_table),values = Color)+theme(#panel.border = element_rect(fill=NA,size = 2),panel.background = element_blank(),plot.title = element_text(size = rel(1.2)),axis.title = element_blank(),axis.ticks = element_blank(),legend.title = element_blank(),legend.position = "right")

geom_tile异曲同工。

ComplexHeatmap

ComplexHeatmap应该是最能还原本文前言图的包,不过我这里暂时还没时间搞定,后续发复现版本的代码。

row.names(clinical.df) <- clinical.df[,1]
clinical.df <- clinical.df[,-1]
clinical.df3 <- data.frame(t(clinical.df))
# 上面的代码为了将数据转为热图矩阵
library(ComplexHeatmap)
Heatmap(clinical.df3)

未经雕饰的图确实不是很美观。

总结

以上就是我所知的几种常用的画离散变量的热图的方法。如果大家有更巧妙的想法,欢迎在后台留言互相学习交流

参考

R绘图(2): 离散/分类变量如何画热图/方块图 - 简书 (jianshu.com)

往期

  1. 跟着Nature学作图 | 配对哑铃图+分组拟合曲线+分类变量热图

  2. (免费教程+代码领取)|跟着Cell学作图系列合集

  3. 跟着Nat Commun学作图 | 1.批量箱线图+散点+差异分析

  4. 跟着Nat Commun学作图 | 2.时间线图

  5. 跟着Nat Commun学作图 | 3.物种丰度堆积柱状图

  6. 跟着Nat Commun学作图 | 4.配对箱线图+差异分析


R 实战| 几种常用的绘制离散变量热图/方块图/华夫图的方法相关推荐

  1. R中两种常用并行方法——2. snowfall

    上一篇博客(R中两种常用并行方法--1. parallel)中已经介绍了R中常见的一种并行包:parallel,其有着简单便捷等优势,其实缺点也是非常明显,就是很不稳定.很多时候我们将大量的计算任务挂 ...

  2. R实战:【常用函数】rnorm正态分布

    R实战系列专栏 rnorm正态分布(The Normal Distribution)函数 整体分布函数rnorm的函数声明如下: rnorm(n, mean = 0, sd = 1) n:产生随机数个 ...

  3. [python常用图件绘制#02]频率、累计频率双纵坐标轴图

    一.功能介绍 输入: 某样本数据 样本分组数 输出: 必选:直方图(纵轴为某分组下样本的数目) 可选:累计频率线 二.代码 import numpy as np import matplotlib.p ...

  4. R语言中敏感性和特异性、召回率和精确度作为选型标准的华夫图案例

    精度和查全率源自信息检索,但也用于机器学习设置中.但是,在某些情况下,使用精度和查全率可能会出现问题.在这篇文章中,我将讨论召回率和精确度的缺点,并说明为什么敏感性和特异性通常更有用. 定义 对于类别 ...

  5. R实战 | 森林图绘制

    R实战 | 森林图绘制 回答一下2022年VIP群里会员的问题.简单的森林图绘制. Multivariate logistic regression determined independent ca ...

  6. R实战| PCA、tSNE、UMAP三种降维方法在R中的实现

    降维 在组学分析中,一般通过降维算法得到低纬度如二维或三维的新坐标数据,再结合可视化技术去展示样本的在新坐标的空间分布,接着加上统计检验结果证实整体组学水平上组间的差异性.降维算法有基于线性模型的PC ...

  7. R语言R原生及可视化包ggplot2绘制并排的箱图实战(Side-by-Side Boxplots)

    R语言R原生及可视化包ggplot2绘制并排的箱图实战(Side-by-Side Boxplots) 目录 R语言R原生及可视化包ggplot2绘制并排的箱图实战(Side-by-Side Boxpl ...

  8. R语言直方图(histogram)绘制实战

    R语言直方图(histogram)绘制实战 目录 R语言直方图(histogram)绘制实战 #ggplot2包及测试数据 #基础直方图

  9. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(手动配置箱图箱体颜色)实战

    R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(手动配置箱图箱体颜色)实战 目录 R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(手动配置箱图箱 ...

最新文章

  1. C++ string类中的find()函数的简单使用
  2. ibatis提示Unable to load embedded resource from assembly Entity.Ce_SQL.xml,Entity.
  3. SQuAD文本理解挑战赛十大模型解读
  4. 网页益智游戏怎么制作_休息一下,或者:如何使用Java 12制作出色的益智游戏...
  5. c语言中的无符号字节,C语言之有符号数和无符号数
  6. Module System of Swift (简析 Swift 的模块系统)
  7. jquery将html转换word,HTML代码转word!亲测!可用!!!
  8. 极光推送指定用户推送_App用户都睡着了?是时候用推送和活动唤醒一波了!
  9. Elasticsearch-head插件的安装与使用
  10. ASP.NET视图状态解析(本博客仅是自己留着作为存储学习)---选自MSDN
  11. 机器学习入门框架scikit-learn
  12. [SSH] 设置密钥登陆
  13. 浙大PAT甲级 1080
  14. 关闭windows defender
  15. 范蠡传(司马迁-史记)
  16. Mac下显示网页全屏快捷键
  17. 达梦数据库恢复到指定时间点
  18. linux 实现监听热插拔事件
  19. java使用多线程查询大批量数据
  20. XGBoost学习(六):输出特征重要性以及筛选特征

热门文章

  1. 认识计算机硬件.ppt,认识计算机硬件资料课件.ppt
  2. R语言rhdf5读写hdf5文件(.h5)展示文件组织结构和数据索引
  3. 【搜集】AVI解码器下载(AE导入avi时报错的解决办法)
  4. 来看看移动端小程序技术的前世今生!小白也能看明白
  5. STEMWIN窗口管理学习
  6. Camtasia Studio 2021软件免费秘钥序列号下载录制视频或微课教程
  7. 数码相机做摄像头_如何将数码相机用作网络摄像头
  8. spark 期末复习
  9. 【tensorflow 深度学习】8.训练图片分类模型
  10. [33] Red and Black