パッケージgrid
で作成したモザイク プロットを変更するために使用したいと考えています。vcd
具体的には、正確に配置された線分を追加したいと考えています。最小限の例を次に示します。
library(vcd)
myDF <- expand.grid(fac1 = c('a', 'b', 'c', 'a'), fac2 = c('y', 'z'))
mosaic(fac2 ~ fac1, data = myDF, pop = FALSE)
結果は次のプロットです。
grid.segments()
「fac2」ラベルの下に、プロットされたセルと同じ幅の水平セグメントを描画するために使用したいと思います。seekViewport()
「fac2」ラベルを保持するビューポートに移動するために使用できれば、これは簡単です。しかし、私はできません。問題は次のとおりです。
> getNames()
> [1] "rect:fac1=a,fac2=y" "rect:fac1=a,fac2=z" "rect:fac1=b,fac2=y" "rect:fac1=b,fac2=z"
[5] "rect:fac1=c,fac2=y" "rect:fac1=c,fac2=z" "GRID.text.1" "GRID.text.2"
[9] "GRID.text.3" "GRID.text.4" "GRID.text.5" "GRID.text.6"
[13] "GRID.text.7"
実行するseekViewport("cell:GRID.text.2")
と、エラーメッセージが表示されます。
Error in grid.Call.graphics(L_downviewport, name$name, strict) :
Viewport 'cell:GRID.text.2' was not found
(「cell:」接頭辞は、vcd
ビューポートの命名スキームの一部です。対照的に、次のようなコマンドはseekViewport("cell:fac1=a,fac2=y")
完全に機能します。)
「fac2」ラベルを保持するビューポートに移動する方法はありますか? そうでない場合、そのラベルの下に線分を正確に配置する最良の方法は何ですか?