meineko’s blog

元つくばの某独立行政法人勤務の植物屋です。最近は、ほぼ、突発天体の話題です。

散布図にエラーバーを加える

Rで、グラフにエラーバーを加えるのは、少し、トリッキーです。
#柔軟性があるともいう?
arrows()を使って書き加えるというのが一般的みたいです。
[1:12]みたいに範囲指定できたので、割と楽でした。

> read.csv("test.txt", sep="\t")
> jdmag <- read.csv("test.txt", sep="\t")
> jdmag
JD comp obj check comp.err obj.err check.err
1 2455062 -8.3634 -5.0679 -6.9596 0.0054 0.0883 0.0147
2 2455062 -8.3409 -4.9416 -6.9964 0.0060 0.0977 0.0136
3 2455062 -8.3580 -4.9216 -6.9386 0.0057 0.0931 0.0148
4 2455062 -8.3556 -5.0118 -6.9442 0.0058 0.0941 0.0149
5 2455062 -8.3477 -4.9353 -6.9674 0.0064 0.0993 0.0143
6 2455062 -8.3433 -4.8976 -6.9799 0.0057 0.1070 0.0143
7 2455062 -8.3695 -5.1240 -6.9889 0.0062 0.0868 0.0134
8 2455062 -8.3796 -4.9909 -6.9180 0.0057 0.0964 0.0155
9 2455062 -8.3620 -5.0724 -6.9686 0.0063 0.0849 0.0138
10 2455062 -8.3467 -4.9824 -6.9901 0.0057 0.0905 0.0135
11 2455062 -8.3555 -4.8789 -6.9694 0.0057 0.1014 0.0137
12 2455062 -8.3508 -4.8082 -6.9969 0.0057 0.1009 0.0135
> matplot(jdmag$JD, jdmag[2:4], pch=c(15:17), ylim=rev(c(-9, -4)), xlab="JD", ylab="mag")
> arrows(jdmag$JD[1:12], jdmag$obj[1:12], jdmag$JD[1:12], jdmag$obj[1:12]+jdmag$obj.err[1:12], length=0.05, angle=90, col=1)
> arrows(jdmag$JD[1:12], jdmag$obj[1:12], jdmag$JD[1:12], jdmag$obj[1:12]-jdmag$obj.err[1:12], length=0.05, angle=90, col=1)
> arrows(jdmag$JD[1:12], jdmag$comp[1:12], jdmag$JD[1:12], jdmag$comp[1:12]+jdmag$comp.err[1:12], length=0.05, angle=90, col=1)
> arrows(jdmag$JD[1:12], jdmag$comp[1:12], jdmag$JD[1:12], jdmag$comp[1:12]-jdmag$comp.err[1:12], length=0.05, angle=90, col=1)
> arrows(jdmag$JD[1:12], jdmag$check[1:12], jdmag$JD[1:12], jdmag$check[1:12]+jdmag$check.err[1:12], length=0.05, angle=90, col=1)
> arrows(jdmag$JD[1:12], jdmag$check[1:12], jdmag$JD[1:12], jdmag$check[1:12]-jdmag$check.err[1:12], length=0.05, angle=90, col=1)