gpt4 book ai didi

r - 如何绘制大型 ctree() 以避免重叠节点

转载 作者:行者123 更新时间:2023-12-03 11:26:44 25 4
gpt4 key购买 nike

当我从 ctree() 绘制决策树结果时来自 party包,字体太大,盒子也太大了。它们与其他节点重叠。

有没有办法自定义 plot() 的输出?这样盒子和字体会更小?

最佳答案

简短的回答似乎是,不,您不能更改字体大小,但还有其他一些不错的选择。

我知道三种可能的解决方案。首先,您可以更改图中的其他参数以使其更紧凑。其次,您可以将其写入图形文件并查看该文件。第三,您可以在 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

default plot

简化图
# 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)
)

enter image description here

这在某种程度上更好,并且可以进一步改进它。为了弄清楚这些细节,我最初是做 class(airct)返回“二叉树”。有了这些信息,我开始阅读 ?plot.BinaryTree
写入文件

第二种简单的解决方案是将绘图写入文件,然后查看该文件。您可能需要调整设置以找到最合适的设置。
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)
)

enter image description here

在这里,我将叶子保留在默认设置中,因为坦率地说,我从来没有想过如何让它按照我想要的方式工作。我怀疑这与包不完整的事实有关(截至 2012 年 12 月)。您可以阅读以 ?plot.party 开头的绘图方法。

关于r - 如何绘制大型 ctree() 以避免重叠节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13751962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com