需要绘制R中标准误差的曲线

时间:2015-10-13 22:28:37

标签: r plot ggplot2

我需要绘制标准误差的曲线作为阴影区域。例如,我有一个像这样的矩阵,作为时间箱:

Age        CO2                 Standard_error
0   1                   1.42E-13
0.5 0.998268422989761   0.00169763164186241
1   0.995743963199747   0.00479900584235718
1.5 0.995062233834876   0.0103274581695151
2   1.00398569520812    0.0195262589284694
2.5 1.03116826950464    0.0329875314671063
3   1.07422916427453    0.049116358866183
3.5 1.11992125335082    0.0646007093291105
4   1.15670166266193    0.0770010287134558
4.5 1.18120894601468    0.0860204557092314
5   1.1972210240662 0.0930892044882256
5.5 1.21094781023761    0.0999899575457834
6   1.22407556599768    0.10698386874689
6.5 1.23264038072763    0.112706241640139
7   1.23471241147135    0.116401516372119
7.5 1.23341569261173    0.118772825620555
8   1.23279196992244    0.120901622556905
8.5 1.2346500417623 0.123408621016096
9   1.23831115917507    0.126316578608025
9.5 1.24201463025631    0.129312831831815

我想用这个估计的标准误差绘制曲线。我见过的大多数函数(特别是在ggplot2中)估计了标准误差,并且我已经估计了这些数据。 任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:10)

您可以将ggplot2geom_ribbon结合使用:

library(ggplot2)
ggplot(dat, aes(x = Age, y = CO2)) +
       geom_line() +
       geom_ribbon(aes(ymin = CO2 - Standard_error,
                       ymax = CO2 + Standard_error), alpha = 0.2)

enter image description here

答案 1 :(得分:8)

在基础R绘图中,

?matplot对于此类任务通常很方便:

matplot(
  dat$Age,
  dat$CO2 + outer(dat$Standard_error, c(0,1,-1)),
  type="l", lty=c(1,2,2), col=c(1,2,2),
  xlab="Age", ylab="CO2"
)

enter image description here

如果阴影至关重要,请转向polygon

ses <- dat$CO2 + outer(dat$Standard_error, c(1,-1))
with(dat, 
  plot(
    Age, CO2, type="l", ylim=range(ses),
    panel.first=polygon(c(Age,rev(Age)), c(ses[,1],rev(ses[,2])),border=NA, col="#ebebeb")
  )
)

enter image description here