グラフィックス参考実例集:箱型図
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
COLOR(red){SIZE(20){グラフィックス参考実例集:箱型図 boxplot}}
([[グラフィックス参考実例集]]に戻る。[[Rのグラフィックスパラメータ]]を参照する。)~
ご存知(とはいえ世間での認知度はほとんど零)箱型図(箱ひげ図)。関数boxplotは箱ひげ図と呼ばれるグラフを作図します。このグラフは、いくつかのデータの分布の違いを比較するのに有効です。 boxplotは任意個の引数をとって、それぞれに対する箱ひげ図を描きます。上下のひげは、それぞれ上(下)側四分位数の位置から、極値までの間に引かれます。極値とは、上(下)側四分位数から四分位範囲の 1.5 倍以内にあるデータのうちの最大(小)値です。極値よりも大きい、または小さい値は外れ値としてひげの先にプロットされます。
なお、boxplotにold=Tと指定することによって、S version 3.2 以前と同じスタイルの箱ひげ図を描くことができます。
#contents
~
**把っ手(notches) 付きの箱型図 [#xd5d8a9f]
boxplot1 <- function() {
#モデル公式による箱型図
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
data(InsectSprays) # データ読み込み
png("boxplot1.png") # png デバイスを開く
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
boxplot(count ~ spray, data = InsectSprays,
notch = TRUE, add = TRUE, col = "blue")
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot1.png, left)
**箱型図に平均+標準偏差範囲を矢印で加える [#a87d9d74]
boxplot2 <- function() {
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
data(OrchardSprays) # データ読み込み
png("boxplot2.png") # png デバイスを開く
# 箱型図(縦軸は対数目盛)
# 箱型図の基本情報取り出しのため変数 rb に付値
rb <- boxplot(decrease ~ treatment, log="y", data = OrchardSprays, col="bisque")
title("Comparing boxplot()s and non-robust mean +/- SD")
# 各ブロックの平均値と標準偏差のベクトル計算
mn.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, mean)
sd.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, sd)
# 箱の中心の x 座標
xi <- 0.3 + seq(rb$n)
# 平均値を点プロット
points(xi, mn.t, col = "orange", pch = 18)
# 平均値±標準偏差の範囲を矢印で図示
arrows(xi, mn.t - sd.t, xi, mn.t + sd.t,
code = 3, col = "pink", angle = 75, length = .1)
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot2.png, left)
**行列を元に箱型図を描く [#qd5d353c]
boxplot3 <- function() {
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
## 各種分布によるそれぞれ100個の疑似乱数を並べた行列
mat <- cbind(Uni05 = (1:100)/21, Norm = rnorm(100),
T5 = rt(100, df = 5), Gam2 = rgamma(100, shape = 2))
png("boxplot3.png") # png デバイスを開く
boxplot(data.frame(mat), main = "boxplot(data.frame(mat), main = ...)")
par(las=1) # 軸ラベルをすべて水平に
boxplot(data.frame(mat), main = "boxplot(*, horizontal = TRUE)",
horizontal = TRUE)
dev.off() # postscript デバイスを閉じる
sd.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, sd)
# 箱の中心の x 座標
xi <- 0.3 + seq(rb$n)
# 平均値を点プロット
points(xi, mn.t, col = "orange", pch = 18)
# 平均値±標準偏差の範囲を矢印で図示
arrows(xi, mn.t - sd.t, xi, mn.t + sd.t,
code = 3, col = "pink", angle = 75, length = .1)
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot3.png, left)
**オプション `at = ' の使用法 [#pa5f3234]
boxplot4 <- function() {
data(ToothGrowth) # データ読み込み
## 箱の中心位置を at で指定
## VC を与えた結果だけをまず描く(オプション subset= supp == "VC")
png("boxplot4.png") # png デバイスを開く
boxplot(len ~ dose, data = ToothGrowth,
boxwex = 0.25, at = 1:3 - 0.2,
subset= supp == "VC", col="yellow",
main="Guinea Pigs' Tooth Growth",
xlab="Vitamin C dose mg",
ylab="tooth length", ylim=c(0,35))
## オプション add=TRUE で重ね描き指定
## オレンジジュースを与えた結果を次に描く(オプション subset = supp == "OJ")
boxplot(len ~ dose, data = ToothGrowth, add = TRUE,
boxwex = 0.25, at = 1:3 + 0.2,
subset= supp == "OJ", col="orange")
## 凡例を加える
legend(2, 9, c("Ascorbic acid", "Orange juice"),
fill = c("yellow", "orange"))
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot4.png, left)
** 箱型図を軸の修飾に使う(Statistiques avec R より、2004.3.4) [#o3df14c7]
おまけにラグプロットまで。どうするとこういう使い方を思いつけるのか、ただ脱帽。注意すると最初に layout 関数で作図領域を4分割し、そのうちの3つに順に本図、y データの箱型図、x データの箱型図を描いている!
data(cars)
op <- par()
layout( matrix( c(2,1,0,3), 2, 2, byrow=T ), c(1,6), c(4,1),)
par(mar=c(1,1,5,2))
plot(cars$dist ~ cars$speed, xlab='', ylab='', las = 1)
rug(side=1, jitter(cars$speed, 5) )
rug(side=2, jitter(cars$dist, 20) )
title(main = "cars data")
par(mar=c(1,2,5,1)) # この使い方がすごい boxplot を置く領域を指定している
boxplot(cars$dist, axes=F)
title(ylab='Stopping distance (ft)', line=0) # その領域にタイトルを置く工夫
par(mar=c(5,1,1,2)) # 同じく x 軸の下に boxplot を置く領域を指定している
boxplot(cars$speed, horizontal=T, axes=F)
title(xlab='Speed (mph)', line=1)
par(op)
#ref(グラフィックス参考実例集:箱型図/bxprug.jpg, left)
終了行:
COLOR(red){SIZE(20){グラフィックス参考実例集:箱型図 boxplot}}
([[グラフィックス参考実例集]]に戻る。[[Rのグラフィックスパラメータ]]を参照する。)~
ご存知(とはいえ世間での認知度はほとんど零)箱型図(箱ひげ図)。関数boxplotは箱ひげ図と呼ばれるグラフを作図します。このグラフは、いくつかのデータの分布の違いを比較するのに有効です。 boxplotは任意個の引数をとって、それぞれに対する箱ひげ図を描きます。上下のひげは、それぞれ上(下)側四分位数の位置から、極値までの間に引かれます。極値とは、上(下)側四分位数から四分位範囲の 1.5 倍以内にあるデータのうちの最大(小)値です。極値よりも大きい、または小さい値は外れ値としてひげの先にプロットされます。
なお、boxplotにold=Tと指定することによって、S version 3.2 以前と同じスタイルの箱ひげ図を描くことができます。
#contents
~
**把っ手(notches) 付きの箱型図 [#xd5d8a9f]
boxplot1 <- function() {
#モデル公式による箱型図
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
data(InsectSprays) # データ読み込み
png("boxplot1.png") # png デバイスを開く
boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
boxplot(count ~ spray, data = InsectSprays,
notch = TRUE, add = TRUE, col = "blue")
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot1.png, left)
**箱型図に平均+標準偏差範囲を矢印で加える [#a87d9d74]
boxplot2 <- function() {
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
data(OrchardSprays) # データ読み込み
png("boxplot2.png") # png デバイスを開く
# 箱型図(縦軸は対数目盛)
# 箱型図の基本情報取り出しのため変数 rb に付値
rb <- boxplot(decrease ~ treatment, log="y", data = OrchardSprays, col="bisque")
title("Comparing boxplot()s and non-robust mean +/- SD")
# 各ブロックの平均値と標準偏差のベクトル計算
mn.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, mean)
sd.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, sd)
# 箱の中心の x 座標
xi <- 0.3 + seq(rb$n)
# 平均値を点プロット
points(xi, mn.t, col = "orange", pch = 18)
# 平均値±標準偏差の範囲を矢印で図示
arrows(xi, mn.t - sd.t, xi, mn.t + sd.t,
code = 3, col = "pink", angle = 75, length = .1)
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot2.png, left)
**行列を元に箱型図を描く [#qd5d353c]
boxplot3 <- function() {
oldpar <- par(no.readonly = TRUE) # 現在のグラフィックスパラメータ退避
on.exit(par(oldpar)) # (関数がエラー中断しても) 終了時にパラメータ復帰
## 各種分布によるそれぞれ100個の疑似乱数を並べた行列
mat <- cbind(Uni05 = (1:100)/21, Norm = rnorm(100),
T5 = rt(100, df = 5), Gam2 = rgamma(100, shape = 2))
png("boxplot3.png") # png デバイスを開く
boxplot(data.frame(mat), main = "boxplot(data.frame(mat), main = ...)")
par(las=1) # 軸ラベルをすべて水平に
boxplot(data.frame(mat), main = "boxplot(*, horizontal = TRUE)",
horizontal = TRUE)
dev.off() # postscript デバイスを閉じる
sd.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, sd)
# 箱の中心の x 座標
xi <- 0.3 + seq(rb$n)
# 平均値を点プロット
points(xi, mn.t, col = "orange", pch = 18)
# 平均値±標準偏差の範囲を矢印で図示
arrows(xi, mn.t - sd.t, xi, mn.t + sd.t,
code = 3, col = "pink", angle = 75, length = .1)
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot3.png, left)
**オプション `at = ' の使用法 [#pa5f3234]
boxplot4 <- function() {
data(ToothGrowth) # データ読み込み
## 箱の中心位置を at で指定
## VC を与えた結果だけをまず描く(オプション subset= supp == "VC")
png("boxplot4.png") # png デバイスを開く
boxplot(len ~ dose, data = ToothGrowth,
boxwex = 0.25, at = 1:3 - 0.2,
subset= supp == "VC", col="yellow",
main="Guinea Pigs' Tooth Growth",
xlab="Vitamin C dose mg",
ylab="tooth length", ylim=c(0,35))
## オプション add=TRUE で重ね描き指定
## オレンジジュースを与えた結果を次に描く(オプション subset = supp == "OJ")
boxplot(len ~ dose, data = ToothGrowth, add = TRUE,
boxwex = 0.25, at = 1:3 + 0.2,
subset= supp == "OJ", col="orange")
## 凡例を加える
legend(2, 9, c("Ascorbic acid", "Orange juice"),
fill = c("yellow", "orange"))
dev.off() # デバイスを閉じる
}
#ref(グラフィックス参考実例集:箱型図/boxplot4.png, left)
** 箱型図を軸の修飾に使う(Statistiques avec R より、2004.3.4) [#o3df14c7]
おまけにラグプロットまで。どうするとこういう使い方を思いつけるのか、ただ脱帽。注意すると最初に layout 関数で作図領域を4分割し、そのうちの3つに順に本図、y データの箱型図、x データの箱型図を描いている!
data(cars)
op <- par()
layout( matrix( c(2,1,0,3), 2, 2, byrow=T ), c(1,6), c(4,1),)
par(mar=c(1,1,5,2))
plot(cars$dist ~ cars$speed, xlab='', ylab='', las = 1)
rug(side=1, jitter(cars$speed, 5) )
rug(side=2, jitter(cars$dist, 20) )
title(main = "cars data")
par(mar=c(1,2,5,1)) # この使い方がすごい boxplot を置く領域を指定している
boxplot(cars$dist, axes=F)
title(ylab='Stopping distance (ft)', line=0) # その領域にタイトルを置く工夫
par(mar=c(5,1,1,2)) # 同じく x 軸の下に boxplot を置く領域を指定している
boxplot(cars$speed, horizontal=T, axes=F)
title(xlab='Speed (mph)', line=1)
par(op)
#ref(グラフィックス参考実例集:箱型図/bxprug.jpg, left)
ページ名: