party
パッケージのctree()
のデシジョンツリーの結果をプロットすると、フォントが大きすぎ、ボックスも大きすぎました。それらは他のノードとオーバーラップしています。
ボックスとフォントが小さくなるようにplot()
からの出力をカスタマイズする方法はありますか?
簡単に言えば、いいえ、フォントサイズを変更することはできませんが、他にもいくつかの良いオプションがあります。
私は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)
)
_
これはいくらか良く、さらに改善できるかもしれません。これらの詳細を理解するために、私は最初に「BinaryTree」を返すclass(airct)
を行いました。この情報を武器に、私は_?plot.BinaryTree
_を読み始めました
2番目の簡単な解決策は、プロットをファイルに書き込んでからファイルを表示することです。最適な設定を見つけるには、設定を試してみる必要がある場合があります。
_png("airct.png", res=80, height=800, width=1600)
plot(airct)
dev.off()
_
最後に、同じ作成者が何人か、パーティーパッケージの新しい未完成の再実装を使用できます。この時点(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
_で始まるplotメソッドについて読むことができます
別のオプション(必要なものは変更しないが、根本的な問題を解決できる可能性があります)は、クラスで割り当てについて学習したように、図自体のサイズを変更することです。
以下のrを置き換えます。
{r}
と:
{r, fig.width=X, fig.height=Y}
xとYは、適切なサイズに応じて、ユーザーが選択した数値に置き換える必要があります。
このWebサイト は、これをより詳細に、そして文書全体で普遍的に行うことについて話します。