2017-05-01 5 views
0

私はctreeを作成しており、さらに編集したいと思っています。Rツリー内のctreeラベルを編集する方法

私のコードは次のとおり

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) 
) 

ctreeimage

私は(それは16.4メートルになりたい)ボックスプロット上のY軸に、そのような16.4などの変数にラベルを追加したいです。

ご協力いただければ幸いです。

答えて

1

異なるパネルで異なることを行うためにパネル機能を微調整する必要があるため、これを行うのは簡単ではありません。たとえば、ノード1からの2つのエッジのメーターだけが必要で、ノード2の左側にy軸ラベルが必要です。もちろん、ノード4と5でy軸ラベルを繰り返すこともできますが、冗長になるだろう。視覚的な「混乱」を避けるために、それを省略することの主な動機でした。

このように、最初に上記のようにプロットを作成し、必要な部分を手動で追加することをお勧めします。そうするために、viewportgridシステムを利用することができます。これらは、内部ノード、エッジ、およびすべての終端ノード用に作成されたプロット領域です。デフォルトでは、プロットの作成後にビューポートが削除されます(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")) 

この利回り:

ctree with enhanced labels

関連する問題