在同一图表上绘制多条线周围的置信区间

时间:2014-11-20 06:59:10

标签: r confidence-interval

我已经运行了Moran的I分析,该分析寻找特征之间的空间关系。使用ncf R包中的correlog函数进行分析,并使用从遗传数据生成的前3个主要成分。该分析的结果如下所示。

distance=c(2.806063,8.208133,14.03604,19.03151,24.44091, 2.806063, 8.208133,14.03604,19.03151,24.44091,2.806063,8.208133,14.03604,19.03151,24.44091 )    

correlation=c(-0.006933,0.029481,-0.071406,0.038319,-0.049990,0.006267,0.055945,-0.048551,-0.035062,-0.031578,0.022629,-0.065584,0.000986,-0.052754,0.0424931)
component=c(PC1,PC1,PC1,PC1,PC1,PC2,PC2,PC2,PC2,PC2,PC3,PC3,PC3,PC3,PC3)

data1<-data.frame(distance,correlation,component)

然后我用ggplot绘制结果

library(ggplot2)
ggplot(data1,aes(x=data1$distance,y=data1$correlation,group=component,colour=component))+theme_classic()+ geom_line(size=1)+geom_point(size=1.5)

我现在要做的是计算每个主要成分的95%置信区间,并在ggplots上绘制,使用微弱阴影表示每条线周围的置信区域并保持不同的线条颜色代表不同的电脑。不幸的是,我完全陷入困境,不知道该怎么做。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

您的代码不会按原样运行,这就是为什么在过去的10个小时内没有人愿意回复。

假设你的意思是:

component=c("PC1","PC1","PC1","PC1","PC1","PC2","PC2","PC2","PC2","PC2","PC3","PC3","PC3","PC3","PC3")

并且您希望95%的CL用于相关性与距离,这将提供它:

library(ggplot2)
ggplot(data1,aes(x=distance,y=correlation,color=component))+
  geom_line(size=1)+
  geom_point(size=1.5)+
  stat_smooth(aes(fill=component), alpha=.2,
              method=lm, formula=y~1, se=TRUE, level=0.95)+
  theme_classic()

主要的增加是stat_smooth(...)线,它使用仅具有常数项(因此,均值)的线性模型来平滑相关性与距离数据。请注意默认的level=0.95和默认的se=TRUE,因此在这种情况下,这些条款并不是必需的。

另外,aes(...)调用中的表达式应该引用data1的列(所以x=distance x=data1$distance),而您不需要如果group=...使用相同的分组变量,则为color=...子句。