0

运行以下代码,我得到 15 个具有 tSNE 的集群,但是当我按集群(即身份)去颜色时,我最多只能得到 8 种颜色。

library(Seurat)
library(rgl)

example <- RunTSNE(example, dims.use = PC, do.fast = TRUE, dim.embed = 3)

example_1 <- example@dr$tsne@cell.embeddings[,1]
example_2 <- example@dr$tsne@cell.embeddings[,2]
example_3 <- example@dr$tsne@cell.embeddings[,3]

plot3d(x = example_1, y = example_2, z = example_3, col = 
as.numeric(example@ident))

这是一个问题,因为创建的 3D tSNE 图具有相同颜色的不同簇。

是否有使用更多颜色(15)的不同方式,以便每个集群都有自己的颜色?谢谢。

4

1 回答 1

1

这扩展了 G5W 和我自己的评论。

rgl使用标准基本图形系统来指定颜色。您可以按名称、RGB 编码或调色板中的编号给它们。有关此系统的更多详细信息,请参阅?col2rgb帮助页面。

如果您想使用 15 个单独的数值,您可能需要设置一个比默认值更大的调色板。?rainbow帮助页面描述了几个生成颜色的函数;还有一个RColorBrewer包定义了更好的调色板,但没有一个包含多达 15 种颜色。

使用rainbow(15)会得到 15 种不同的颜色。只需添加

palette(rainbow(15))

plot3d通话之前,你会自动得到它们。然后,您可以使用添加图例

legend3d("right", legend = levels(example@ident), fill = palette())

图例是位图,因此如果您打算保存图像以供打印,请在添加图例之前将窗口扩大到全尺寸。

于 2017-11-30T13:23:30.940 回答