【问题标题】:partykit - How to plot a glmtree without overlapping of terminal nodes?partykit - 如何在不重叠终端节点的情况下绘制 glmtree?
【发布时间】:2019-04-13 03:19:15
【问题描述】:

我想绘制一棵由 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() 的输出以避免终端节点重叠?

这是我的意思的图片:

【问题讨论】:

    标签: r plot tree glm party


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢阿奇姆的支持。现在我明白了,如何将参数传递给面板函数。此外,我更改了一些协变量的名称,这就是我想出的: plot(fit.glmtree, tp_args = list(ylines = 1, margins = c(1.5, 1.2, 1.5, 2.5)), ep_args = list(数字 = 1))
    • 太好了,很高兴它可以解决。您能否在 StackOverflow 上接受它被系统标记为已解决的答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多