群ごとの散布図と、平均±SD を同時に書くグラフ

群ごとの散布図と、平均±SD を同時に書くグラフは、個々の観測値や平均と分散などを確認するのに、とても役に立ちます。
特に、20例くらいまでの標本数の場合は、ハコヒゲ図より散布図が好まれることもあるかと思います。

X1として格納するデータの形式です。
y
数字で Y軸にもってきたい数字。
group
カテゴリーで、「い組」,「ろ組」,「は組」, .... のようなデータです (例は日本語にしましたが、R の都合で原則アルファベットと数字の組合せです。 空白にも注意が必要です)。3群以上でも対応しています。
id
個体番号 (数字です)。
なお、attach されていることが前提で記載します。
点が二つ以上重なる場合に、ずらして書くことができる青木先生の拡張を使っています。
http://aoki2.si.gunma-u.ac.jp/R/src/dot_plot.R
を先にRのコマンドラインにペーストして実行して下さい。
インタネーットに接続している状態で、貼りつけてリターンキーを押すだけです。

# 変数を定義します

X1 <- CellConc
attach(X1)
groupN <- length(levels(group)) # グループの数

#Gmean と Gsd に平均とsd をそれぞれ収納します。

Gmean <- tapply(X1,group,mean, na.rm=TRUE)
Gsd <- tapply(X1,group,sd, na.rm=TRUE)

# グラフを書きます。

dot.plot(group, X1, accu=0.01, stp=0.03, bty = "l",xlim=c(0.5,groupN+0.5), ylim=c(0,max(X1, na.rm=T)*1.2), ylab="Y軸のラベル", xlab="X軸のラベル", main="グラフのタイトル")

# エラーバー

arrows(1:groupN+0.2,Gmean,1:groupN+0.2,Gmean-Gsd,angle=90, length=0.05) arrows(1:groupN+0.2,Gmean,1:groupN+0.2,Gmean+Gsd,angle=90, length=0.05)

# 平均値

segments(1:groupN+0.15, Gmean,1:groupN+0.25, Gmean)

以上です。

accu=0.01で重なりの定義、 stp=0.03 の部分で横にずらすときの大きさを定義しているようです。

固体番号 "id" がある場合は、

dot.plot(group, X1, accu=0.01, stp=0.03, bty = "l", xlim=c(0.5,groupN+0.5), ylim=c(0,max(X1, na.rm=T)*1.2), ylab="Y軸のラベル", xlab="X軸のラベル", main="グラフのタイトル", pch=id)

dot.plot()は、stripchart を代りに用いても良いでしょう。 こちらは拡張なしで使えます。

stripchart (y~group, vert=T, method="jitter", "jitter"=0.1,bty = "l",xlim=c(0.5,groupN+0.5), ylim=c(0,max(X1, na.rm=T)*1.2), ylab="Y軸のラベル", xlab="X軸のラベル", main="グラフのタイトル" )
B! LINE