6

大家好,我有一个简单的问题,但我无法在任何教程中得到答案。我对一组数据进行了简单的主成分分析,然后用双图绘制我的数据。

CP <- prcomp(dat, scale. = T)
summary(CP)

biplot(CP)

有了这个,我就第一个和第二个组件得到了我的数据的散点图。我希望按颜色分隔我的数据,指示 R 将我的前 20 个数据绘制为红色,将接下来的 20 个数据绘制为蓝色。我不知道如何告诉 R 为这两组数据着色。任何帮助将不胜感激。谢谢!(我对 R 很陌生)

4

2 回答 2

11

免责声明:这不是一个直接的答案,但可以调整以获得所需的输出。

library(ggbiplot)
data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE))

在此处输入图像描述

于 2012-10-07T05:01:57.650 回答
1

使用plot()将为您提供更大的灵活性 - 您可以单独使用它或与text()文本标签一起使用,如下所示(感谢@flodel 提供有用的评论):

col = rep(c("red","blue"),each=20)
plot(CP$x[,1], CP$x[,2], pch="", main = "Your Plot Title", xlab = "PC 1", ylab = "PC 2")
text(CP$x[,1], CP$x[,2], labels=rownames(CP$x), col = col)

但是,如果您想使用biplot()此代码:

biplot(CP$x[1:20,], CP$x[21:40,], col=c("red","blue"))
于 2012-10-07T00:43:51.587 回答