【问题标题】:Colouring a legend on a PCA plot为 PCA 图上的图例着色
【发布时间】:2014-07-06 15:03:57
【问题描述】:

我有一个大的数据矩阵,它可以由一个名为“Day”的变量进行分区,该变量从 1 到 10 不等,我想用它来为我的 PCA 图着色

当我使用以下代码时,这可以正常工作:

plot(pca$x,col = day,pch=20)

但是当我尝试添加一个图例来显示每种颜色所指的日期时:

legend("topleft", pch = 20, col=day, legend = c("Day 1","Day 2","Day 3","Day 4","Day 5","Day 6","Day 7","Day 8","Day 9","Day 10"), bty='n', cex=.75)

我明白了。如何让图例在图上显示各个颜色?:

【问题讨论】:

  • 这可能是因为day 包含与数据点一样多的颜色,但对于图例,您只需要十个。也许unique(day) 就足够了,但这真的取决于你的数据是如何组织的。

标签: r plot pca


【解决方案1】:

对于 mtcars 这会起作用:

with(mtcars, plot(mpg, wt, col=cyl))
with(mtcars, legend("topright", pch = 20, col=unique(cyl), legend = unique(cyl)))

也许你可以用同样的方式处理你的数据。

或者如果你使用 ggplot2:

qplot(wt, mpg, data=mtcars, colour=factor(cyl))

【讨论】:

    【解决方案2】:

    你可以使用

    legend("topleft", col=1:10, legend = paste("Day", 1:10),
        pch = 20, bty='n', cex=.75)
    

    稍微清理一下。图例应仅指定您在图中使用的不同颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2013-12-14
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多