文章目录

  • pheatmap绘制热力图
    • (1)坐标轴顺序
    • (2)调色板函数
      • ①colorRamp {grDevices}函数
      • ②brewer.pal{GiNA}
    • (3)可视化辅助
      • ①数据转换,如log10()转换。
      • ②将颜色栏进行处理,如(2)中bias参数的修改。这里介绍一种分位数颜色栏,代替均匀颜色栏。原理如下图,
      • ③修改原始数据
    • (4)拓展
  • 参考文献

pheatmap绘制热力图

(1)坐标轴顺序

pheatmap包在绘制热力图时,行名不与data的行名一致,如何保留原始data的行名,控制参数,

cluster_rows=F, cluster_cols=F.

(2)调色板函数

①colorRamp {grDevices}函数

创建颜色梯度,1000表示离散成一千格。要显示的数据就可以插值对应1000种颜色中的某一种。

colorRampPalette(c("grey90", "red", "darkred"))(1000)

·bias参数越小,上层的颜色占的范围就越大。比较下列两组颜色。

bias=1(默认)

bias=0.5

require(graphics)
YlOrBr <- c("#FFFFD4", "#FED98E", "#FE9929", "#D95F0E", "#993404")#区间调色板,类似MATLAB
filled.contour(volcano,color.palette = colorRampPalette(YlOrBr, space = "Lab"),asp = 1)
filled.contour(volcano,color.palette = colorRampPalette(YlOrBr, space = "Lab",bias = 0.5),asp = 1)

②brewer.pal{GiNA}

library("RColorBrewer")
color=brewer.pal(8,"Pastel2")
color=brewer.pal(50, "Blues")

(3)可视化辅助

如果数据的分布头重脚轻,偏态严重,如少数极大值和大量小值组成的数据,可视化颜色区分效果就很差。sacle参数可能不适合不同组间的整体比较,受到限制。介绍几种可视化辅助方法。

①数据转换,如log10()转换。

pheatmap(log10(data))

②将颜色栏进行处理,如(2)中bias参数的修改。这里介绍一种分位数颜色栏,代替均匀颜色栏。原理如下图,


代码

quantile_breaks <- function(xs, n = 10) {breaks <- quantile(xs, probs = seq(0, 1, length.out = n))breaks[!duplicated(breaks)]}mat_breaks <- quantile_breaks(mat, n = 11)
pheatmap(mat               = mat,color             = inferno(length(mat_breaks) - 1),breaks            = mat_breaks,border_color      = NA,show_colnames     = FALSE,show_rownames     = FALSE,annotation_col    = mat_col,annotation_colors = mat_colors,drop_levels       = TRUE,fontsize          = 14,main              = "Quantile Color Scale")

代码中的inferno函数来自viridis包,类似的还有viridis,viridis, inferno, magma, plasma, cividis。是有助色盲用户识别的颜色模块。
有兴趣的读者可以尝试quantile_breaks ()求log10(xs),再带回。

③修改原始数据

对于极个别异常大或者小的数据,我们将其遮蔽,并将legend进行修改,如上图最右侧图。

legend_breaks = c(-2,1,2,3,4,6), legend_labels = c("<-2", "1e-4", "1e-3", "1e-2", "1e-1", ">6"))

(4)拓展

见参考文献【6】

参考文献

【1】坐标轴顺序
【2】https://www.cnblogs.com/xudongliang/p/6932195.html
【3】RGB配色表
【4】如何使颜色均匀
【5】源码上处理颜色栏
【6】利用ggsci

pheatmap绘制热力图相关推荐

  1. R语言使用pheatmap绘制热力图(数据归一化、行列聚类、注释、文字角度、字体)

    R语言使用pheatmap绘制热力图(数据归一化.行列聚类.注释.文字角度.字体) 目录

  2. 如何利用Seaborn绘制热力图?

    如何利用Seaborn绘制热力图? 这是本学期在大数据哲学与社会科学实验室做的第八次分享了. 第一次分享的是: 如何利用"wordcloud+jieba"制作中文词云? 第二次分享 ...

  3. R语言可视化分别使用lattice包和ggplot2包可视化热图(heatmap)并绘制热力图对应的系统树图(dendrogram)实战

    R语言可视化分别使用lattice包和ggplot2包可视化热图(heatmap)并绘制热力图对应的系统树图(dendrogram)实战 目录

  4. 可视化篇(五)——— python绘制热力图及案例

    可视化篇(五)--- python绘制热力图及案例 摘要 效果图 python代码 摘要 本文演示了如何通过python绘制热力图,并给出了其应用于展示数据之间相关性的案例供读者参考. 效果图 pyt ...

  5. Origin绘制热力图

    文章目录 数据格式 Origin绘图 数据格式 在写论文时,经常用到热力图.以下为我的数据格式: Origin绘图 首先,将Excel中的数据复制到Origin数据面板中,如下图所示: 可以看到数据的 ...

  6. python根据相关系数绘制热力图

    热力图使用:sns.heatmap,例子如下: import matplotlib.pyplot as plt import seaborn as sns import pandas as pd im ...

  7. qcustomplot绘制热力图瀑布图_使用REmap绘制中国地图

    上次我们介绍了使用ggplot2绘制中国热力地图,需要温习的同学可以点击以下链接 使用ggplot2绘制中国地图  .在使用ggplot2绘制的时候,需要进行数据处理的步骤比较多,今天我们介绍一个新的 ...

  8. 可视化神器Plotly绘制热力图

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 之前更新了很多关于Plotly绘图的文章.今天带来的文章是基于官网和实际案例来讲解如何绘制不同需求下的热力图. Plot ...

  9. 20180402-F · US Tuition Costs · pheatmap 绘制热图 · R 语言数据可视化 案例 源码

    所有作品合集传送门: Tidy Tuesday 2018 年合集传送门: 2018 US Tuition Costs Average Tuition and Educational Attainmen ...

最新文章

  1. 20165239其米仁增3
  2. 动词ing形式的5种用法_课后文档:英语语法思维第7课动词的5个形式的用法
  3. 悲催的中国式项目开发
  4. php实现享元模式,php设计模式 flyweight (享元模式)
  5. 青光眼-复内路粘小管成形术(ABiC)-转载
  6. 分布式事务是啥?常用的解决方案有哪些?
  7. 如何下载EP的各个版本?
  8. 【推广】实用命令——tldr
  9. php上传同一张图片,两种php实现图片上传的方法_PHP
  10. JimuReport积木报表 — SQL数据源报表带参展示
  11. Git笔记(28) 签署工作
  12. 【BZOJ3781】小B的询问 莫队
  13. 为Angular(2+)开发人员提供带TypeScript的Vue.js
  14. R语言中读取xlsx文件的方法
  15. python的框架django_Python框架Django高级内容,python
  16. c ++创建二维数组_C ++中的二维数组
  17. github创建仓库,往github上上传自己的项目
  18. github leaf项目怎么用_这份GitHub上价值49K的SpringBoot2+Thymeleaf企业应用实战,真香...
  19. 信息技术(计算机基础知识精华版)
  20. mac安装win7流程 win7提示无法验证数字签名的解决

热门文章

  1. Buuctf Crpyto writeup --[NCTF2019]Keyboard
  2. 2010 美国高校计算机系排行榜出炉
  3. Unity 2018 3.6f1版本默认安装没有脚本编辑器
  4. PS:动图加文字(一)
  5. html5邮箱提示信息,JS实现的邮箱提示补全效果示例
  6. 整数除法 JAVA leetcode
  7. vscode中vetur、eslint、prettier个人理解
  8. 从ceph集群中删除MDS server
  9. 家庭windows 如何开启远程桌面
  10. 禅道邮箱配置163邮箱/阿里云邮箱区别