0

箱ひげ図(ベースグラフィックを使用)に関するプロットの質問があります。

箱ひげ図に変換して比較したいデータの配列がいくつかあります。配列はさまざまな実験を反映しており、私が示したいのは、基本結果と実験のパーセンテージの差です(1つのプロットで!)。つまり、ベースの結果は1番目のy軸にあり、%diffは2番目のy軸にあります。

base <- array(runif(12*24*3), dim=c(12,24,3))
exp1 <- array(runif(12*24*3), dim=c(12,24,3))
exp2 <- array(runif(12*24*3), dim=c(12,24,3))
exp3 <- array(runif(12*24*3), dim=c(12,24,3))
exp4 <- array(runif(12*24*3), dim=c(12,24,3))

# calc p.diff
p.diff   <- function(mod,base)  {
                 100.0*((mod-base)/base) }

a <- p.diff(exp1,base)
b <- p.diff(exp2,base)
c <- p.diff(exp3,base)

# combine the % diff arrays
exps <- list(a,b,c)

# plot the results
boxplot(base, xlim=c(1,4), col="gray", xaxt="n", ylab="Base values", outline=FALSE)
axis(side=1, 1:4, labels=c("base","% exp1","% exp2","% exp3") )
par(new=TRUE)
boxplot(exps, col="red", ylim=c(-200,200), outline=FALSE, axes=FALSE)
axis(4)
grid()

これはほぼ機能しますが、さまざまな箱ひげ図の位置が正しくわかりません(私の例を実行すると、私が何を意味するかがわかります)。それで、箱ひげ図の配置を制御するためのより良い方法はありますか?または、同様のタイプの図を作成するためのより良い方法はありますか?

4

1 に答える 1

1

編集済み (1): X 軸の正しいシーケンスを定義する必要があります。プロットが重ならないように。遊んでみてください。

X 軸のラベルが適切な場所にないと思いますか? よりエレガントな方法はわかりませんが、解決策は次のとおりです。

# plot the results
boxplot(base, xlim=c(1,4), col="gray", xaxt="n", ylab="Base values", outline=FALSE)
axis(side=1,1,labels=('base'))
par(new=TRUE)
boxplot(exps, col="red", ylim=c(-200,200), outline=FALSE, axes=FALSE)
axis(4)
axis(side=1,1:3,labels=c("% exp1","% exp2","% exp3"))
grid()

そのため、作成後にすべてのラベルを追加しましたboxplot。最初に をプロットしbaseてラベルを付け、次にプロットexpsしてラベルを付けます。それはあなたの問題を解決しますか?

編集:より明確にするために、3つの値を持つ新しいプロットを追加しています。そのためaxis(side=1,1:3,labels=c("% exp1","% exp2","% exp3"))、1から3までです...

編集済み (2):

プロットで複数行を使用して、2 つのグラフをプロットしてみませんか? データの例を次に示します。

#divide your plottin area into 2 columns with one row.
par(mfrow = c(1, 2))
# plot the results
boxplot(base, col="gray", xaxt="n", ylab="Base values", outline=FALSE,axes=FALSE)
axis(2)
axis(side=1,1,labels=('base'))
segments(0,0,1,0)
boxplot(exps,col="red", xaxt="n", ylim=c(-200,200), outline=FALSE, axes=FALSE)
axis(4)
axis(side=1,at=(1:3),labels=c("% exp1","% exp2","% exp3"))

ここから詳細情報を入手できます

于 2012-11-15T10:41:40.883 に答える