我目前正在使用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
)以及其他用于不同调色板的贡献包中的函数。