異なるパネルで異なることを行うためにパネル機能を微調整する必要があるため、これを行うのは簡単ではありません。たとえば、ノード1からの2つのエッジのメーターだけが必要で、ノード2の左側にy軸ラベルが必要です。もちろん、ノード4と5でy軸ラベルを繰り返すこともできますが、冗長になるだろう。視覚的な「混乱」を避けるために、それを省略することの主な動機でした。
このように、最初に上記のようにプロットを作成し、必要な部分を手動で追加することをお勧めします。そうするために、viewport
のgrid
システムを利用することができます。これらは、内部ノード、エッジ、およびすべての終端ノード用に作成されたプロット領域です。デフォルトでは、プロットの作成後にビューポートが削除されます(pop
pingビューポートはgrid
ジャーゴンになります)。しかし、単にpop = FALSE
を設定することによってそれらを保持することができます。すべてのビューポートは、ナビゲートに使用できるかなり単純な名前を持っています。
library("partykit")
ct <- ctree(dist ~ speed, data = cars)
プロットそしてちょうどに追加pop = FALSE
であなたの例のように設定することができます。私も3つのターミナルノードでツリーを生み出すRでcars
データを使用し、再現例えば
エンド:私たちはラベル"node_boxplot3plot"
でビューポートにジャンプすることができ、ノード3のy軸のラベルの
plot(ct,
main = expression('Suitable Brook Trout Habitat (m'^2*'/100m'^2*')'),
inner_panel = node_inner(ct, fill = c("white"), id = FALSE),
terminal_panel = node_boxplot(ct, col = "black", fill = "lightgray",
width = 0.5, yscale = NULL, ylines = 3, cex = 0.5, id = FALSE),
pop = FALSE
)
。 (場合によっては3
の代わりに2
ノードを使用してください)。grid.text()
を使用してy軸ラベルを追加できます。座標は-3水平(テキストの)行と垂直中央(0.5正規化された親座標):
seekViewport("node_boxplot3plot")
grid.text("Hello World!",
x = unit(-3, "lines"), y = unit(0.5, "npc"), rot = 90)
最後に、我々は、ノード1からの第1及び第2のエッジラベルで"m"
を追加これら"edge1-1"
と呼ばれそれぞれ"edge1-2"
である。今、水平方向の位置は、再びそのビューポートの真ん中(o.5のNPC)を加えた文字列"< 17"
(あなたのケースで"< 16.4"
)の幅である:
一緒
seekViewport("edge1-1")
grid.text("m", x = unit(0.5, "npc") + unit(1, "strwidth", "< 17"))
seekViewport("edge1-2")
grid.text("m", x = unit(0.5, "npc")+ unit(1, "strwidth", "> 17"))
この利回り: