Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将因子映射到热图中的颜色_R_Heatmap - Fatal编程技术网

R 将因子映射到热图中的颜色

R 将因子映射到热图中的颜色,r,heatmap,R,Heatmap,您好,我正在用热图制作R中的热图。2。我想使用RowSideColors选项。但是,我不知道如何轻松地为行创建颜色向量。 这些行代表细菌,我有一个数据框,其中包含我想用于着色的细菌信息。我将使用Bact\u philo\u Info$Phylum或k来创建颜色向量 > str(Bact_Phylo_Info) 'data.frame': 33 obs. of 3 variables: $ Phylum: Factor w/ 7 levels "Actinobacteria",..:

您好,我正在用热图制作R中的热图。2。我想使用RowSideColors选项。但是,我不知道如何轻松地为行创建颜色向量。 这些行代表细菌,我有一个数据框,其中包含我想用于着色的细菌信息。我将使用
Bact\u philo\u Info$Phylum
或k来创建颜色向量

> str(Bact_Phylo_Info)
'data.frame':   33 obs. of  3 variables:
 $ Phylum: Factor w/ 7 levels "Actinobacteria",..: 4 3 3 2 2 2 2 2 5 5 ...
 $ Order : Factor w/ 10 levels "Bacteroidales",..: NA 4 4 1 1 1 1 1 NA 5 ...
 $ Family: Factor w/ 13 levels "Anaplasmataceae",..: NA 4 4 NA 11 2 11 12 NA NA ...
我试过一些方法,例如下面的疯狂循环,但我认为一定有一种简单的方法我错过了。谢谢你的帮助

BactPhyColors <- sapply(Bact_Phylo_Info$Phylum,
    if (Bact_Phylo_Info$Phylum == levels(Bact_Phylo_Info$Phylum)[i]),
        rainbow(length(levels(Bact_Phylo_Info$Phylum)))[i]
}
)

BactPhyColors如果我很了解您试图做的事情:您将一个变量编码为一个因子,然后尝试将其转换为颜色?
正在创建一些离散比例颜色

在这里,我使用
brewer\u pal
from
scales
包创建一个brewer调色板。然后将其与因子变量合并

library(scales)
dat <- data.frame(Phylum = gl(7,2))
n <- nlevels(dat$Phylum)
dat.col <- data.frame(Phylum =unique(dat$Phylum),
            BactPhyColors =brewer_pal()(n))  ## you can also use rainbow(n)

merge(dat,dat.col)

merge(dat,dat.col)
   Phylum     BactPhyColors
1       1 #EFF3FF
2       1 #EFF3FF
3       2 #C6DBEF
4       2 #C6DBEF
5       3 #9ECAE1
6       3 #9ECAE1
7       4 #6BAED6
8       4 #6BAED6
9       5 #4292C6
10      5 #4292C6
11      6 #2171B5
12      6 #2171B5
13      7 #084594
14      7 #084594
库(比例)
dat