complexheatmap绘制热图
通过 Heatmap 我们就可以形成单个热图。
PS: colorRamp2 默认的使用的配色方案是 LAB 的。如果想使用RGB的则可以通过其中的space参数进行修改。
*1、 即使出现了异常值,在制定的颜色当中,异常值也只是显示最大值而不是说是把整体的颜色分布给破坏了。我们可以比较一下pheatmap和Heatmap的结果
如果数据当中含有缺失值,如果我们不想去掉想要可视化的话,可以通过na_col来指定颜色
通过上图,我们可以使用对热图的四周都可以进行标题注释。
无监督的聚类属于热图的可视化的一个重要组成部分。
分类聚类只要包括两步:计算距离矩阵以及应用聚类。一般来说计算距离的方式包括pearson, spearman以及kendall。这个计算方式是通过1 - - cor(x, y, method)来实现的。在函数当中则是通过 clustering_distance_rows/columns 来进行实现的。
*2、 cluster_rows 分开设置不同的颜色
我们可以通过 column/row_dend_reorder 来对聚类的结果进行重新排序
一般情况下,热图当中各个观测值的顺序是基于聚类的分组来进行排列的。有时候我们想要自己排序顺序。这个时候就可以自定义去顺序。通过row_order/column_order可以来定义其排序。 PS:当我们自定义顺序之后,聚类的顺序就随之关闭了。
默认情况下对于列名和行名都是显示的。我们可以对其进行自定义
热图的分割主要包括多种方式
一般的热图上都是方块形的颜色的变化。我们可以通过cell_fun参数来对热图本身进行自定义。这个参数本质是一个for循环的函数。这个接受7个参数分别是: - j矩阵当中行的索引。 - i矩阵当中的列的索引。 - x在热图当中测量点的X坐标 - y在热图当中测量点单元格Y的坐标 - width 单元格的宽度。默认值是unit(1/nrow(sub_mat), "npc") - height单元格的高度。默认值是unit(1/nrow(sub_mat), "npc") - fill单元格的颜色。 通过一个简单的例子我们来详细说一下具体的含义
上述两个热图的区别就在于增加了一个cell_fun参数。通过比较两个热图可以明白cell_fun本质上就是给单元格自定义。这个例子当中,通过自定义函数,我们取small_mat1的数据放到热图上。放的位置及基于i,j,x,y来决定的。这个例子当中四个参数都没有变化。所以默认热图的数据集和自定义的数据集和变化是一样的。即:在small_data[1,1]的位置放置small_data1[1,1]的内容。以此类推。
由于是函数嘛,所以可以更加的自定义数据了。比如加入if来筛选数据
同样的由于自定义绘图也是基于grid系统的。所以grid系统另外一些绘图参数也是可以使用的。所以我们可以隐藏默认的热图显示来定义不同的图形。
我们可以通过width和height来调整整体图片的大小。通过heatmap_width以及heatmap_height来调整热图部分的大小。
生活很好,等你超越
2024-09-19 广告