2

我正在尝试缩放出现在 ctree 终端节点中的图。我尝试使用 yscale 参数,但这只是导致超出绘图窗口的绘图

例如:这是两个指数分布的 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 轴,但现在绘图超出了绘图框。

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

感谢您的任何建议

4

1 回答 1

0

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

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

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

于 2015-07-02T21:52:19.043 回答