r语言 - 如何更改数据点的颜色以匹配治疗组



我目前正在使用 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编程的新手,这些代码中的大多数都是从在线指南中复制的。因此,如果您能告诉我确切地在哪里包含更改,那将非常有帮助。提前非常感谢!

您正在将颜色设置为组值。 这有时有效,因为组值通常是因子,因子存储为整数值,但它有点命中和未命中。

最好明确计算颜色。 例如,您可以使用以下方法获得 10 种颜色的矢量

cols <- rainbow(10)

然后将其用作

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

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

在基础R中有几个函数可以选择颜色(见?rainbow(,其他函数则在不同的调色板的贡献包中。

最新更新