群ごとの散布図と、平均±SD を同時に書くグラフ
特に、20例くらいまでの標本数の場合は、ハコヒゲ図より散布図が好まれることもあるかと思います。
X1として格納するデータの形式です。
- y
- 数字で Y軸にもってきたい数字。
- group
- カテゴリーで、「い組」,「ろ組」,「は組」, .... のようなデータです (例は日本語にしましたが、R の都合で原則アルファベットと数字の組合せです。 空白にも注意が必要です)。3群以上でも対応しています。
- id
- 個体番号 (数字です)。
点が二つ以上重なる場合に、ずらして書くことができる青木先生の拡張を使っています。
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="グラフのタイトル" )