我有一系列带有均值和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
))
我试图在一个图表上表示一系列正常曲线,其中曲线的中点是平均值,曲线底部的范围是平均值+误差/平均误差。曲线的高度都可以与我们给每个平均值相同的权重相同。
我有一个搜索,我真的被卡住了。对不起,如果我错过了可能已经回答的地方。
答案 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'序列的长度。