No.15711 plotmeansを2変数で描画したい  【Hiyo】 2011/11/21(Mon) 23:47

いろいろ試したのですが,なかなかうまくいかないので質問させてください。

下記の過去の質問のboxplotをplotmeansに置き換えたような図を作りたいのですが可能でしょうか。
http://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc042/09783.html
ちなみに,横軸は対数で取りたいと思っています。

No.15717 Re: plotmeansを2変数で描画したい  【青木繁伸】 2011/11/22(Tue) 12:03

gplot にある plotmeans の引数では調整できないようですね。

plotmeans を改造するよりは,plotmeans は基本的には簡単な図なので,必要な機能だけを取り入れてプログラムを自作するというのがよいかも。
my.plotmeans <- function(v, g, margin1=0.1, margin2=2,
xlab=deparse(substitute(g)),
ylab=deparse(substitute(v)))
{
n <- nlevels(as.factor(g))
MEAN <- by(v, g, mean)
SD <- by(v, g, sd)
upper <- MEAN+SD
lower <- MEAN-SD
x <- as.numeric(levels(as.factor(g)))
min.v <- min(lower)
max.v <- max(upper)
w <- (max.v-min.v)*0.1
plot(c(min(x)-margin1, max(x)+margin2), c(min.v-w, max.v+w), type="n",
ylab=ylab, log="x", xlab=xlab)
points(x, MEAN, pch=19)
arrows(x, lower, x, upper, length=0.05, angle=90, code=3)
text(x, MEAN, paste("mean =", round(MEAN, 3)), pos=4, xpd=TRUE)
text(x, MEAN-SD/2, paste("sd =", round(SD, 3)), pos=4, xpd=TRUE)
text(x, upper, paste("n =", by(v, g, length)), pos=3, offset=0.5, xpd=TRUE)
}
set.seed(12345)
y <- c(rnorm(10), rnorm(10, 0.5), rnorm(10, 1, 2))
x <- rep(c(1, 2, 4), each=10)
my.plotmeans(y, x)


No.15741 Re: plotmeansを2変数で描画したい  【Hiyo】 2011/11/23(Wed) 16:12

プログラムソースまで掲載していただき,ありがとうございます。
掲載していただいたソースをもとに何とか目的の図を出力することができました。

● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る