将平均值和误差(2sd)绘制为R中的多个法线

时间:2013-12-10 21:17:23

标签: r plot normal-distribution

我有一系列带有均值和2sd错误的值:

structure(list(Site = 1:5, Value = c(0.54, 0.36, 0.13, 0.25, 
0.05), Error = c(0.26, 0.27, 0.25, 0.4, 0.24)), .Names = c("Site", 
"Value", "Error"), class = "data.frame", row.names = c(NA, -5L
))

我试图在一个图表上表示一系列正常曲线,其中曲线的中点是平均值,曲线底部的范围是平均值+误差/平均误差。曲线的高度都可以与我们给每个平均值相同的权重相同。

我有一个搜索,我真的被卡住了。对不起,如果我错过了可能已经回答的地方。

1 个答案:

答案 0 :(得分:1)

首先你需要设置情节但是给'情节'一个NA来抑制任何情节。执行此操作时,plot需要X和Y的范围

plot(NA, xlim=c( min(dat$Value)-max(dat$Error), 
                 max(dat$Value)+max(dat$Error) ),
         ylim=c(0,1) )
apply(dat, 1, function(x){ xx <-seq( x['Value']-x['Error'], 
                                    x['Value']+x['Error'], length=20);
                           yy=dnorm(xx, x['Value'], x['Error']/2);  sd is 1/2 'Error'
                           lines(xx,  yy/max(yy)) })  # normalize to peak == 1

如果你想在平均值附近找到一个更平滑的图,你总是可以增加'xx'序列的长度。

enter image description here