やりたいことは,たいてい用意されているとはよく言われること。
久保さんのグラフ描きについても,example(boxplot) で,参考になる例が見つかる。
#################### 久保さんが書いたプログラム ##############
# 作図例題のための架空データを生成
N.lv <- 5
x <- factor(rep(LETTERS[1:N.lv], each = 20))
y <- rnorm(100)
grp <- factor(rep(c("G1", "G2"), 50)) # Group 1 and 2
# まず,わくだけ描く
boxplot(y ~ x, border = NA) # border = NA は姑息なかんぢ……
# 二種類の箱ヒゲを左右にずらして描く
s <- grp == "G1"
bx <- boxplot(y[s] ~ x[s], plot = FALSE)
bxp(
bx, at = 1:N.lv - 0.15, boxwex = 0.25,
add = TRUE, axes = FALSE, # これを指定しないと「ずれた」x-axis を描く
boxcol = rgb(0, 0, 0, 0.2),
boxfill = rgb(1, 0.5, 0, 0.5)
)
s <- grp == "G2"
bx <- boxplot(y[s] ~ x[s], plot = FALSE)
bxp(
bx, at = 1:N.lv + 0.15, boxwex = 0.25,
add = TRUE, axes = FALSE,
boxcol = rgb(0, 0, 0, 0.2),
boxfill = rgb(0, 0, 1, 0.5)
)
#################### example を書き換えてみたもの ##############
boxplot(y ~ x,
boxwex = 0.25, at = 1:5 - 0.2,
subset = grp == "G1", col = rgb(1, 0.5, 0, 0.5),
xlab = "", ylab = "",
xlim = c(0.5, 5.5), ylim = c(-3, 3), yaxs = "i", xaxt="n")
boxplot(y ~ x, add = TRUE,
boxwex = 0.25, at = 1:5 + 0.2,
subset = grp == "G2", col = rgb(0, 0, 1, 0.5),
xaxt="n")
axis(1, 1:5, LETTERS[1:5])