26

ctree()パッケージから決定木の結果をプロットするpartyと、フォントが大きすぎ、ボックスも大きすぎました。それらは他のノードと重なっています。

plot()ボックスとフォントが小さくなるように出力をカスタマイズする方法はありますか?

4

2 に答える 2

30

短い答えは、いいえ、フォントサイズを変更することはできませんが、他にもいくつかの良いオプションがあるようです.

私は3つの可能な解決策を知っています。まず、プロット内の他のパラメーターを変更して、プロットをよりコンパクトにすることができます。次に、それをグラフィック ファイルに書き込んで、そのファイルを表示できます。3 番目に、同じ作成者による新しいパッケージである partykit パッケージで ctree() の代替実装を使用できます。

デフォルトのプロット例

library(party)
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq, 
               controls = ctree_control(maxsurrogate = 3))
plot(airct)  #default plot, some crowding with N hidden on leafs

デフォルトのプロット

単純化されたプロット

# simpler version of plot
plot(airct, type="simple",           # no terminal plots
  inner_panel=node_inner(airct,
       abbreviate = TRUE,            # short variable names
       pval = FALSE,                 # no p-values
       id = FALSE),                  # no id of node
  terminal_panel=node_terminal(airct, 
       abbreviate = TRUE,
       digits = 1,                   # few digits on numbers
       fill = c("white"),            # make box white not grey
       id = FALSE)
   )

ここに画像の説明を入力

これはいくらか改善されており、さらに改善できる可能性があります。これらの詳細を理解するために、私はもともとclass(airct)「BinaryTree」を返しました。この情報を武器に、私は読み始めました?plot.BinaryTree

ファイルに書き込む

2 番目の簡単な解決策は、プロットをファイルに書き込んでから、そのファイルを表示することです。最適な設定を見つけるには、設定をいじる必要があるかもしれません。

png("airct.png", res=80, height=800, width=1600) 
   plot(airct) 
dev.off()

代わりに partykit パッケージでプロット

最後に、同じ作成者の何人かによる、まだ完成していない新しいパーティ パッケージの再実装を使用できます。この時点 (2012 年 12 月) で、彼らがやり直した機能はctree(). このバージョンでは、フォント サイズを変更できます。

    library(partykit) 
    airct <- ctree(Ozone ~ ., data = airq)
    class(airct)  # different class from before
    # "constparty" "party"  
plot(airct, gp = gpar(fontsize = 6),     # font size changed to 6
  inner_panel=node_inner,
  ip_args=list(
       abbreviate = TRUE, 
       id = FALSE)
  )

ここに画像の説明を入力

ここでは、葉っぱをデフォルト設定のままにしています。これは、パッケージが不完全であることに関係していると思われます (2012 年 12 月現在)。で始まるプロット方法について読むことができます?plot.party

于 2012-12-08T17:20:50.193 に答える