【问题标题】:How to change color of data points to match treatment groups?如何更改数据点的颜色以匹配治疗组?
【发布时间】:2019-04-02 22:57:16
【问题描述】:

我目前正在使用 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 编程完全陌生,其中大部分代码都是从在线指南中复制的。因此,如果您能告诉我究竟在哪里包含更改,那将非常有帮助。 非常感谢!

【问题讨论】:

    标签: r pca rgl


    【解决方案1】:

    您将颜色设置为组值。这有时会奏效,因为组值通常是因子,因子存储为整数值,但它有点碰运气。

    最好明确计算颜色。例如,您可以使用 10 种颜色的向量

    cols <- rainbow(10)
    

    然后将其用作

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

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

    base R 中有几个函数可以选择颜色(请参阅?rainbow),以及用于不同调色板的贡献包中的其他函数。

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 2022-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多