如何更改数据点的颜色以匹配治疗组?

时间:2019-04-02 03:00:53

标签: r pca rgl

我目前正在使用RStudio使用从SPSS导入的数据为我的PCA生成3D图。

目前,我有10个治疗组,每个治疗组有5个受试者。我想绘制一个3d图,其中每个治疗组用一种颜色表示,并且同一治疗组中的每个受试者都具有相同的颜色。 这些颜色都不能重复也很重要。

我能够生成3d图,但是有2个处理组使用相同的颜色。

有人可以帮助我纠正此问题,以便不同治疗组不再出现重复的颜色吗?

这是我正在使用的代码。

db = file.choose()

hpca = read.table(db, header=TRUE)

pc <- princomp(hpca[,2:7], cor=TRUE, scores=TRUE)


 plot3d(pc$scores[,1:3], col=hpca$group, size = 6)
 text3d(pc$scores[,1:3],texts=hpca$ï..tag)
 text3d(pc$loadings[,1:3], texts=rownames(pc$loadings), col="red")
 coords <- NULL
 for (i in 1:nrow(pc$loadings)) {
     coords <- rbind(coords, rbind(c(0,0,0),pc$loadings[i,1:3]))
 }
 lines3d(coords, col="red", lwd=4)

* p / s;我是R编程的新手,大多数代码都是从在线指南中复制的。因此,如果您可以向我展示确切地包含更改的位置,那将非常有帮助。 提前非常感谢!

1 个答案:

答案 0 :(得分:0)

您正在将颜色设置为组值。有时这是可行的,因为组值通常是因子,并且因子存储为整数值,但这是一种偶然。

最好显式计算颜色。例如,您可以使用

获得10种颜色的矢量
cols <- rainbow(10)

然后将其用作

plot3d(..., col=cols[as.numeric(gp)])

如果gp包含一个具有10个级别的因子。

基本R中有多个功能可以选择颜色(请参阅?rainbow),而在其他功能包中,还有其他功能可以用于不同的调色板。