partykit - 如何在不重叠终端节点的情况下绘制 glmtree?

partykit - How to plot a glmtree without overlapping of terminal nodes?

我想绘制一棵由 glmtree(partykit 包)生成的树。不幸的是,终端节点重叠,图表的标签不再正确显示。

生成树的代码是这个:

library(partykit)
library(aVirtualTwins)

data(sepsis)
attach(sepsis)

data <- cbind(y = survival, trt = as.factor(THERAPY), sepsis[,3:13])
formula <- as.formula(paste("y ~ trt", paste(names(sepsis[,3:13]), 
                            collapse = " + "), sep = " | "))
fit <- glmtree(formula, data, family = binomial)

plot(fit)

detach(sepsis)

有没有办法自定义 plot() 的输出以避免终端节点重叠?

这是我的意思的图片:

glmtree 对象(以及其他 partykit 对象)的 plot() 输出可通过树的各个方面(内部节点、终端节点、边缘、 ...)。这种树默认使用的面板函数是 node_bivplot(),它有许多可以调整的参数。有关详细信息,请参阅 ?node_bivplot。例如,这里的相关选项是 ylines,您可以将其增加到 2

向终端面板函数传递参数tp_args可以使用:

plot(fit, tp_args = list(ylines = 2))