我需要绘制标准误差的曲线作为阴影区域。例如,我有一个像这样的矩阵,作为时间箱:
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中)估计了标准误差,并且我已经估计了这些数据。 任何帮助表示赞赏!
答案 0 :(得分:10)
您可以将ggplot2
与geom_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)
答案 1 :(得分:8)
?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"
)
如果阴影至关重要,请转向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")
)
)