R绘图基础(10)热图 heatmap

  • A+
所属分类:Script

我们在分析了差异表达数据之后,经常要生成一种直观图--热图(heatmap)。这一节就以基因芯片数据为例,示例生成高品质的热图

比如

R绘图基础(10)热图 heatmap

钢蓝渐白配色的热图

首先还是从最简单的heatmap开始。

R绘图基础(10)热图 heatmap

使用heatmap函数默认颜色生成的热图

这个图有三个部分,样品分枝树图和基因分枝树图,以及热图本身。之所以对样品进行聚类分析排序,是因为这次的样品本身并没有分组。如果有分组的话,那么可以关闭对样品的聚类分析。对基因进行聚类分析排序,主要是为了色块好看,其实可以选择不排序,或者使用GO聚类分析排序。上面的这种热图,方便简单,效果非常不错。

接下来我们假设样品是分好组的,那么我们想用不同的颜色来把样品组标记出来,那么我们可以使用ColSideColors参数来实现。同时,我们希望变更热图的渐变填充色,可以使用col参数来实现。

R绘图基础(10)热图 heatmap

使用heatmap函数top.colors填充生成的热图

在heatmap函数中,样品分组只能有一种,如果样品分组有多次分组怎么办?heatmap.plus就是来解决这个问题的。它们的参数都一致,除了ColSideColors和RowSideColors。heatmap使用是一维数组,而heatmap.plus使用的是字符矩阵来设置这两个参数。

R绘图基础(10)热图 heatmap

使用heatmap.plus绘制热图

这样绘图的不足是没有热图色key值。gplots中的heatmap.2为我们解决了这个问题。而且它带来了更多的预设填充色。下面就是几个例子。

R绘图基础(10)热图 heatmap

使用heatmap.2函数,readgreen渐变色填充生成的热图

R绘图基础(10)热图 heatmap

使用heatmap.2函数,heat.colors渐变色填充生成的热图

R绘图基础(10)热图 heatmap

使用heatmap.2函数,terrain.colors渐变色填充生成的热图

R绘图基础(10)热图 heatmap

使用heatmap.2函数,cm.colors渐变色填充生成的热图

R绘图基础(10)热图 heatmap

使用heatmap.2函数,redblue渐变色填充生成的热图

R绘图基础(10)热图 heatmap

使用heatmap.2函数,colorpanel渐变色填充生成的热图

然而,以上的heatmap以及heatmap.2虽然方便简单,效果也很不错,可以使用colorpanel方便的设置渐变填充色,但是它的布局没有办法改变,生成的效果图显得有点呆板,不简洁。为此这里介绍如何使用ggplot2当中的geom_tile来为基因芯片绘制理想的热图。

R绘图基础(10)热图 heatmap

使用ggplot2中geom_tile函数,钢蓝渐白配色的热图

也可以很轻松的实现传统渐变填充色,红黄渐变。

R绘图基础(10)热图 heatmap

使用ggplot2中geom_tile函数,红黄渐变填充的热图

使用红绿渐变填充。

R绘图基础(10)热图 heatmap

使用ggplot2中geom_tile函数,红绿渐变填充的热图

使用绿白渐变填充。

R绘图基础(10)热图 heatmap

使用ggplot2中geom_tile函数,绿白渐变填充的热图

使用棕白渐变填充。

R绘图基础(10)热图 heatmap

使用ggplot2中geom_tile函数,棕白渐变填充的热图

使用灰阶填充。

R绘图基础(10)热图 heatmap

使用ggplot2中geom_tile函数,灰色渐变填充的热图

除了ggplot2,还有lattice也是不错的选择。我只使用一种填充色,生成两个图,以作示例。

R绘图基础(10)热图 heatmap

使用lattice中的levelplot函数,heat.colors填充绘制热图

 

R绘图基础(10)热图 heatmap

使用lattice中的levelplot函数,heat.colors填充,dendrogramGrob绘树型,绘制热图

可是可是,绘制一个漂亮的热图这么难么?参数如此之多,设置如此复杂,色彩还需要自己指定。有没有简单到发指的函数呢?有!那就是pheatmap,全称pretty heatmaps.

R绘图基础(10)热图 heatmap

pheatmap最简单地直接出图

 

R绘图基础(10)热图 heatmap

pheatmap改变排序算法

 

R绘图基础(10)热图 heatmap

pheatmap自定义颜色

 

R绘图基础(10)热图 heatmap

pheatmap关闭按行排序

 

R绘图基础(10)热图 heatmap

pheatmap关闭图例

 

R绘图基础(10)热图 heatmap

pheatmap设定格子的尺寸

 

R绘图基础(10)热图 heatmap

pheatmap为样品分组

 

R绘图基础(10)热图 heatmap

pheatmap为分组的样品设定颜色

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:3   其中:访客  3   博主  0

    • yjf-007 yjf-007 1

      学习了,感谢

      • pl15797898032 pl15797898032 0

        很不错

        • 家 0

          博主,您好,请问ALL是什么数据包啊