R 使用PCA按类别着色的标签/点

R 使用PCA按类别着色的标签/点,r,plot,R,Plot,我使用prcomp在R中进行PCA分析,我想用不同颜色的文本标签为两个类别中的每一个绘制PC1与PC2, 我通过以下方式进行绘图: plot(pca$x, main = "PC1 Vs PC2", xlim=c(-120,+120), ylim = c(-70,50)) 然后用我尝试过的不同颜色绘制所有文本: text(pca$x[,1][1:18], pca$[,1][1:18], labels=rownames(cava), col="green", adj=c(0.3,-

我使用
prcomp
在R中进行PCA分析,我想用不同颜色的文本标签为两个类别中的每一个绘制PC1与PC2, 我通过以下方式进行绘图:

plot(pca$x, main = "PC1 Vs PC2", xlim=c(-120,+120), ylim = c(-70,50))
然后用我尝试过的不同颜色绘制所有文本:

text(pca$x[,1][1:18],  pca$[,1][1:18],  labels=rownames(cava), col="green", 
     adj=c(0.3,-0.5))
text(pca$x[,1][19:35], pca$[,1][19:35], labels=rownames(cava), col="red", 
     adj=c(0.3,-0.5))
但是,如果要在彼此上绘制两个数字而不是一个,pcs$x[,1][1:18]将绘制我知道的正确点,因为如果我使用该绘制点,它将工作并生成与绘图相同的绘图(
pca$x

如果有人能帮助绘制这两个类别或类别的标签,那就太好了
即使绘制不同颜色的点,也可以轻松区分不同的打印。

您需要以稍微不同的方式指定x和y坐标:

text(pca$x[1:18,1], pca$x[1:18,2] ...)
这意味着取x坐标的前18行和第一列(即PC1),以此类推。 我很惊讶你所做的没有出错

如果希望点本身着色,可以通过以下方式进行:

plot(pca$x, main = "PC1 Vs PC2", col = c(rep("green", 18), rep("red", 18)))

很酷,谢谢点颜色法,我会用的。我编写子脚本的方式(R2.15.2)现在我注意到它们正在相互绘制,因为点是相同的。谢谢