如我在这里发布的那样如何制作PCA图

时间:2016-01-19 06:18:52

标签: r plot ggplot2 ape-phylo

know how to use the PCA results to draw the circle,但未能根据x.lab的绘图结果绘制y.labs.class

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

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

  2. 可以ggplot2绘制与s.class相同的圈子吗? The previous answers不显示如何绘制圆圈。

2 个答案:

答案 0 :(得分:6)

使用尺寸调整点杖的大小。可以通过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)

enter image description here

答案 1 :(得分:2)

我在pcoa包的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. 用不同的颜色/符号绘制不同治疗/组的点数。 您可以在此处使用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)
    
  4. 在我的代码中,我得到了一个像PCOA那样的数字:

    enter image description here