ctree 图终端节点中的缩放图

Scaling plots in the terminal nodes of ctree graph

我正在尝试缩放出现在 ctree 的终端节点中的图。我试过使用 yscale 参数,但这只是结果超出了绘图 window

例如:这是两个指数分布的ctree

set.seed(1)    
classA <-data.frame(class = "a", val = round(rexp(500, rate = 0.2),0))
classB <-data.frame(class = "b", val = round(rexp(500, rate = 0.05),0))

df <- as.data.frame(rbind(classA,classB))

ct = ctree(val~., data = df)
plot(ct)

现在,如果我尝试将图表的 y 轴从 0 缩放到 70 以放大箱形图并截断异常值,我可以使用:

plot(ct,terminal_panel = node_boxplot(ct,yscale =c(0,70)))

这适用于缩放 y 轴,但现在绘图超出了绘图框。

抱歉,我会显示图像,但在 Whosebug 上还没有足够的权限。

感谢任何建议

首先:在这样的示例中,最好对响应进行对数转换,因为这样 ctree() 中使用的关联测试将更有能力检测树中分裂的差异。如果有精确的零点,一些小的连续性校正可能会有所帮助。

但是,当然,终端节点的适当缩放问题与此不同。原因是终端节点的视口未设置为 clip = TRUE,因此没有裁剪视口区域外的图形元素。

我刚刚在 R-Forge 的 partykit 包中解决了这个问题。尚未安排新的 CRAN 版本,但您可以从 R-Forge 查看 partykit-SVN 或下载当前的 partykit/R/plot.R 源代码。