2017-02-09 11 views
1

格子プロットの問題を解決しようとしています。私はパネルの数が不均一なので、交互でない軸ラベルを付けると、パネルの1つにX軸ラベルが付きません。ラティスプロットで1つのパネル上で軸を変更するにはどうすればいいですか

次のコードは、私の特定のプロジェクトのためではなく、すべてに利用可能であるRデータセット使用しています:

densityplot(~Taste|Wine,data=WineTasting, as.table=TRUE, 
     scales=list(alternating=FALSE), 
     panel=function(x,y,...){ 
      panel.densityplot(x,plot.points=FALSE) 
      } 
) 

をそして、これは最初の画像のように見えるプロット生成します: Image 1

参照をどのように "ワインB"はX軸をもたない。私はすべてのパネルの下に軸の目盛りと数字のラベルをつけたい。私はpanel.axis(側=「下」)を挿入するのであれば、私はエラーメッセージと第2の画像などのように見えるプロットを得る: Image 2

私はまた、次のコードを試してみました:

densityplot(~Taste|Wine,data=WineTasting, as.table=TRUE, 
     scales=list(alternating=FALSE), 
     panel=function(x,y,...){ 
      panel.densityplot(x,plot.points=FALSE) 
      }, 
     if(isTRUE(panel.number(2))){ 
      panel.axis(side="bottom") 
     } 
) 

"エラーを取得して(" lattice.status "ENVIR = .LatticeEnv)[[プレフィックス]]、[[名]]:範囲外の添字 "

しかし、これは単なる読み込みエラーメッセージが表示されます

誰も私に軸を手伝ってもらえますか?その単一のパネル(ワインB)の底に?

おかげで、 マット

答えて

1

あなたはクリッピングと少し創造的な取得する必要があります。

library(lattice) 

densityplot(~ mpg | cyl, data = mtcars, as.table = TRUE, 
    scales = list(alternating = FALSE), 
    par.settings = list(clip = list(panel = "off")), 
    panel = function(x, y, ...) { 
     panel.densityplot(x, plot.points = FALSE, ...) 
     if (panel.number() == 2) { 
     panel.axis(side = "bottom", outside = TRUE) 
     } 
    } 
) 

Imgur

+0

おかげヨハン!これは美しく動作します! –

+0

@MatthewSnyder - それはあなたのために働いてうれしいです。あなたの問題を解決したと思ったら、それを答えとして受け入れることを検討してください。 –

関連する問題