1

このgridExtraパッケージは、長方形をパターンで塗りつぶすことができるクラス「パターン」のグロブを追加します。例えば、

library(gridExtra)
grid.pattern(pattern = 1)

対角線で満たされたボックスを作成します。各パネルがこれらの対角線で埋められたパネルのスタックを作成したいと考えています。かんたんだよ:

library(lattice); library(gridExtra)
examplePlot <- xyplot(
  1 ~ 1 | 1:2, 
  panel = function () grid.pattern(pattern = 1),
  layout = c(1, 2),

  # Remove distracting visual detail
  scales = list(x=list(draw=FALSE), y=list(draw=FALSE)),
  strip = FALSE, xlab = '', ylab = ''
)
print(examplePlot)

問題は、対角線がパネル全体で整列していないことです。つまり、最初のパネルの下部が 2 番目のパネルの上部と接するところに視覚的な「切れ目」があります。その時点で、線は整列しません。これは私が修正したい問題です。

pattern.offset = c(.2005, 0)呼び出しに引数を追加grid.patternし、それが下部パネルのみに適用されるようにすることで、ほとんどの視覚的な中断をなくすことができます。しかし、この解決策は一般化されません。たとえば、パターンを変更すると (たとえば、 へのgranularity引数を使用してgrid.pattern)、このソリューションは機能しません。より一般的な修正はありますか?

4

1 に答える 1

1

これを機能させるには、 でpanel.height使用される引数の設定を担当する必要がありますprint.trellis。(理由を確認するには、サンプル コードを実行した後にプロット デバイスのサイズを変更してみてください。デバイスとパネルのサイズが変更されると、線の一致/不一致も変更されます):

## Calculate vertical distance (in mm) between 45 degree diagonal lines
## spaced 5mm apart (the default distance for grid.pattern).
vdist <- 5 * sqrt(2)

nLines <- 8L    ## can be any integer
panelHeight <- list(x = nLines*vdist, units = "mm", data = NULL)

## Plot it
print(examplePlot, panel.height=panelHeight)

ここに画像の説明を入力

于 2012-06-12T23:56:38.347 に答える