3

地上と地下のバイオマスを 3 つの要因に対してバープロットする必要があります。各バイオマスについて、格子からの棒グラフを使用してプロットできますが、そのうちの 2 つ、つまり Y 軸の正の部分に地上のバイオマス、負の部分に地下のバイオマスをプロットすることについてはわかりません。これが私のデータのテスト コードです。ここで、A、B、C は完全な要因因子です。

library(lattice)
above <- runif(108)
below <- runif(108)
A <- rep(c("ab", "bc", "cd"), each=36)
B <- rep(1:3, 36)
C <- gl(3, 4, 108, c(30, 60, 90))

barchart(above~A|B+C)
barchart(below~A|B+C)

#This is what I used to do for two factors using barplot
par(mfrow=c(2, 1), mai=c(0, 1, 0.5, 0.5))
agg.abv <- aggregate(above, by=list(A, B), mean)
abv <- matrix(agg.abv[, 3], ncol=nlevels(A), dimnames=list(levels(A), levels(B)))
agg.bel <- aggregate(below, by=list(A, B), mean)
bel <- matrix(agg.bel[, 3], ncol=nlevels(A), dimnames=list(levels(A), levels(B)))
barplot(abv, beside=T, ylim=c(0, 1))
barplot(abv, beside=T, ylim=c(1, 0))

しかし、3つの要因はどうですか?

私はトレリスプロットシステムにまったく慣れていないので、どんなアイデアでも大歓迎です

ではごきげんよう

マルコ

4

1 に答える 1

6

これを行う1つの方法は次のとおりです。

  1. 「上」と「下」の値は単一の変数にある必要があります
  2. 「下」の値は負でなければなりません。
  3. origin=0 パラメータをバーチャートに含めます

例えば:

df <- data.frame(
    x <- runif(108, min=-1, max=1),
    A = rep(c("ab", "bc", "cd"), each=36),
    B = rep(1:3, 36),
    C = gl(3, 4, 108, c(30, 60, 90))
)

barchart(x~A|B+C, data=df, origin=0)

ここに画像の説明を入力

于 2011-04-15T05:58:47.423 に答える