ggplot2&stat_ellipse:围绕多组点绘制椭圆

RB8*_*B88 2 r ellipse ggplot2

这可能是一个简单的,但我试图在我的PCoA图上绘制椭圆形.

我的数据框(sc)是:

             MDS1        MDS2 Treatment
X1xF1 -0.19736183 -0.24299825   1xFlood
X1xF2 -0.17409568 -0.29727596   1xFlood
X1xF3 -0.15272444 -0.28553837   1xFlood
S1    -0.06643271  0.47049959     Start
S2    -0.15143350  0.31152966     Start
S3    -0.26156297  0.12296849     Start
X3xF1  0.29840827  0.04581617  3xFloods
X3xF2  0.50503749 -0.07011503  3xFloods
X3xF3  0.20016537 -0.05488630  3xFloods
Run Code Online (Sandbox Code Playgroud)

我的代码是:

ggplot(data=sc,(aes(x=MDS1,y=MDS2,colour = Treatment)))+geom_point(size=3)+
  ggtitle("PCoA of samples at 'class' level(method='Bray')\n",sep=''))+
  theme_bw()+guides(colour = guide_legend(override.aes = list(size=3)))+
  stat_ellipse()
Run Code Online (Sandbox Code Playgroud)

它将PCoA绘制好直到stat_ellipse().我已经尝试了各种参数,充其量我可以为整个情节得到一个椭圆(虽然我现在似乎无法重现).

我所追求的是三种治疗的三个CI椭圆,颜色与治疗相同.任何帮助将非常感谢!

谢谢.

jlh*_*ard 8

有没有stat_ellipse(...)ggplot包装,所以你必须从别的地方retreived它.小心分享?我知道至少有两个版本,这里这里.这些都不适用于您的数据集,这很奇怪,因为它们都与其他数据集一起使用.

我终于回到了外部生成省略号的选项ggplot,这并不是那么困难.

library(ggplot2)
library(ellipse)
centroids <- aggregate(cbind(MDS1,MDS2)~Treatment,sc,mean)
conf.rgn  <- do.call(rbind,lapply(unique(sc$Treatment),function(t)
  data.frame(Treatment=as.character(t),
             ellipse(cov(sc[sc$Treatment==t,1:2]),
                     centre=as.matrix(centroids[t,2:3]),
                     level=0.95),
             stringsAsFactors=FALSE)))

ggplot(data=sc,(aes(x=MDS1,y=MDS2,colour = Treatment)))+
  geom_point(size=3)+
  geom_path(data=conf.rgn)+
  ggtitle(paste("PCoA of samples at 'class' level(method='Bray')\n",sep=''))+
  theme_bw()+
  guides(colour = guide_legend(override.aes = list(size=3)))
Run Code Online (Sandbox Code Playgroud)