亲爱的,我有一个 Dataframe ,例如-
| 基因|val1|val2|val3|val4|群集|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 一个|一点五|2.7|7.8|6.1|集群1|
| B|1.2|2.1|7.6|6.3|cluster2|
| C|十点十一分|12.1|3.6|5.3|cluster2|
| D|0.1|2.15|0.06|零点零五|cluster3|
我有82个这样的簇和116个这样的基因。如果它只是一个注解和着色3-10簇,我可以很容易地做-
library(randomcoloR)
n <- 6
palette1 <- distinctColorPalette(n)
palette1
#[1] "#D043DE" "#B39F92" "#7BCDDC" "#6F45E5" "#A1E849" "#DFDDA5"
ann_color = list("hubID"=c("cluster1"="#D043DE","cluster2"= "#B39F92", "cluster3"="#7BCDDC" ,"cluster4"= "#6F45E5", "cluster5"= "#A1E849", "cluster6"= "#DFDDA5"))
但是我如何为82个集群做同样的事情。我也不认为在pheatmap上分配82种不同的颜色会有点太刺眼了。谁能帮助我获得一系列蓝色或格雷,并将其唯一地分配给这些集群?我试着这样做-
n <- 82
palette1 <- distinctColorPalette(n)
palette1
annoationdf <- data.frame(hubIDs, palette1)
annodflst <- list("cluster"=t(annoationdf))
annodflst
pheatmap(as.matrix(mat1), cluster_cols = FALSE,cluster_rows = FALSE, scale = "row", main = "Expression", show_rownames = F,
cellwidth = 3, cellheight = 3, treeheight_row = 3, treeheight_col = 3, fontsize = 3, annotation_row = annotation_row, annotation_colors = annodflst )
但它给了我一个错误:
Error: elements in `col` should be named vectors.
我不知道在这一点上我可以尝试什么。
1条答案
按热度按时间tv6aics11#
我通过从对象中删除NA值来解决这个问题。