2016-08-02 4 views
1

私は以下のような形式のデータを持っています。私はそれからボックスプロットの4x4グリッドを作成したいと思います。しかし、以下のコードは単一のボックスプロットしか生成しません。私がxyplotをするとき、それはうまくプロットします。私はRに慣れていないので間違いはないと思いますが、なぜxyplotとbwplotの動作が違うのですか?そしてボックスプロットの4x4をどのように得ることができますか?R格子ボックスプロットグリッド

library(lattice) 
require(lattice) 
t1 <- c(LETTERS[1:17]) 
m1 <- matrix(rnorm(12*16,mean=0,sd=1), 12, 16) 
fac <- rep(1:4,3) 
    m1 <- cbind(m1,fac) 
    m1 <- data.frame(m1) 
    colnames(m1) <- t1 
    m1$Q <- as.factor(m1$Q) 

xyplot(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P ~ Q, 
     data=m1, 
     groups=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P, 
     scales=list(relation="free"), 
     col="blue", 
     layout=(c(4,4)) 
     ) 
bwplot(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P ~ Q, 
     data=m1, 
     groups=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P, 
     col="blue", 
     coef=4, do.out = FALSE, 
     layout=(c(4,4)) 
     ) 

答えて

3

bwplot(...)outer=TRUEを追加するトリックを行うようだ:

bwplot(A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P ~ Q, 
     data=m1, 
     groups=A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P, 
     col="blue", 
     coef=4, 
     do.out = FALSE, 
     outer = TRUE, 
     layout=(c(4,4)) 
     ) 

enter image description here

ヘルプファイルから

「外」の引数が「TRUE」に セットがあるときに、この機能のバリエーションがあります。その場合、プロットは各パネルの に重ならず、異なるパネルに分けられます(新しい条件変数が追加された場合は )。

0

は、第1のデータを再フォーマットしてみてください。

library(reshape) 
m1d<-melt(m1,id=17) 

bwplot(value ~ Q | variable, data=m1d) 

enter image description here

+0

データセットに列を追加すると、それらをグループに追加して式を定義し続ける必要がないので、これは素晴らしいことです!ほんとうに素晴らしい。このテストデータセットはすべて同じスケールであったが、私の実際のデータはいくつかのスケールにまたがるので、scales = list(relation = "free")も追加し、レイアウトを4x4として設定する必要があった。助けてくれてありがとう。 – Nathan