如何制作我在此处发布的 PCA 图

how to make a PCA plots as I posted here

,但未能根据s.class的绘图结果绘制x.laby.lab

如何制作我在这里发布的情节? 我想多问一下这个。

  1. 如何根据另一个整数变量使点变大或变小?

  2. ggplot2能画出和s.class一样的圆吗? The previous answers不显示如何画圆。

使用大小调整的点手杖大小。可以通过 stat_ellipsis

添加省略号
pca <- prcomp(iris[iris$Species %in% c("virginica","versicolor"),1:4], retx = TRUE,  scale = TRUE,tol=0.4)
predicted <-predict(pca,iris[,1:4])
ggplot(data.frame(predicted))+aes(x=PC1,y=PC2,color=iris$Species)+geom_point(aes(size=iris$Sepal.Length))+stat_ellipse()+stat_ellipse(level=0.8)

我在 pcoa function of my msap 包中所做的是仅对椭圆和质心使用 s.class

  1. 添加空图,标签和限制取决于几个变量:

    plot(0,0, main=paste(name,surname, sep=": "), type = "n",
      xlab=paste("C1 (",var1,"%)"),ylab=paste("C2 (",var2,"%)"), 
      xlim=c(minX-10^floor(log10(abs(minX))),maxX+10^floor(log10(abs(maxX)))), 
      ylim=c(minY-10^floor(log10(abs(minY))),maxY+10^floor(log10(abs(maxY)))),
     frame=TRUE, cex=1.5)
    

    看看xlab。

  2. 用不同的 colors/simbols 绘制不同的 treatments/groups 的点。 在这里您可以使用 cex 参数设置点大小

    for(i in 1:ntt){
        points(spcoo[[i]], pch=21, col="black", bg=bgcolors[i])
    }
    
  3. 最后使用ade4的c.class绘制椭圆、星形和组标签,但不绘制点(cpoint=0)

    s.class(pcol$points, groups, cpoint=0, col=bgcolors, add.plot=TRUE)
    

在我的代码中,我得到了一个像这样的 PCOA 图: