rgl:基于tSNE群集着色时如何使用8种以上的颜色

时间:2017-11-27 19:16:59

标签: r rgl

运行以下代码我使用tSNE获得了15个集群,但是当我按集群颜色(即身份)进行着色时,我最多只能获得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),以便每个群集都有自己的颜色? 感谢。

1 个答案:

答案 0 :(得分:0)

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

rgl使用标准基础图形系统来指定颜色。您可以通过名称,RGB编码或调色板中的数字来提供它们。有关此系统的详细信息,请参阅?col2rgb帮助页面。

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

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

palette(rainbow(15))
plot3d来电之前

,您将自动获取它们。然后,您可以使用

添加图例
legend3d("right", legend = levels(example@ident), fill = palette())

图例是位图,因此如果您打算保存图像以进行打印,请在添加图例之前将窗口展开为完整尺寸。