1

我正在尝试将颜色侧栏添加到热图列。

我的案例/样本属于不同的组/类别(例如,样本是许多基因在各种细胞中表达的结果,而组是不同的物种)。

我希望颜色侧栏能够反映不同的物种。该列已按单元格类型标记。我知道我可以为不同的物种(使用 if 和 else)一一分配不同的颜色,但是拥有超过 20 个物种和超过 200 个样本是不切实际的。同样,按组对数据进行排序并将不同的颜色分配给例如样本 1 到 10、11 到 25 等是不切实际的......

我发现,我的组名列as.character(as.numeric(data[,XXX])在哪里可以正常工作。XXX然而,它提供了令人震惊的颜色。任何建议如何应用例如彩虹色的几种色调?

colCol fromheatmap.2似乎是合适的,但在使用时它会忽略相同的类/组并分配例如所有样本的调色板......

除上述内容外,我想知道仅绘制树状图时如何做同样的事情。它似乎更复杂......将不胜感激任何帮助!

4

1 回答 1

2

如果我理解正确,你可以尝试这样的事情:

library(gplots)
library(dendextend)

# sample data
x  <- as.matrix(mtcars)

# determine colors & palettes
colClusters <- as.integer(nchar(names(mtcars)) == 2)+1L
rowClusters <- as.integer(factor(substr(rownames(x), 1, 1)))
colCols <- rainbow(2)
rowCols <- rainbow(10)

# create dendrograms
colDend <- x %>% t %>% dist %>% hclust %>% as.dendrogram 
rowDend <- x %>% dist %>% hclust %>% as.dendrogram 

# plot heatmap
heatmap.2(x, 
          Colv = colDend %>% color_branches(col=colCols[colClusters[order.dendrogram(colDend)]]), 
          Rowv = rowDend %>% color_branches(col=rowCols[rowClusters[order.dendrogram(rowDend)]]),
          colCol = colCols[colClusters], 
          colRow = rowCols[rowClusters])   

在此处输入图像描述

于 2015-12-30T12:23:42.380 回答