ctree 图的终端节点中的缩放图
Posted
技术标签:
【中文标题】ctree 图的终端节点中的缩放图【英文标题】:Scaling plots in the terminal nodes of ctree graph 【发布时间】:2015-09-09 16:02:11 【问题描述】:我正在尝试缩放出现在 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 轴,但现在绘图超出了绘图框。
抱歉,我会显示图片,但在 *** 上还没有足够的权限。
感谢您的任何建议
【问题讨论】:
【参考方案1】:首先:在这样的示例中,最好对响应进行对数转换,因为ctree()
中使用的关联测试将更有能力检测树中分裂的差异。如果有精确的零点,一些小的连续性校正可能会有所帮助。
但是,当然,终端节点的适当缩放问题与此分开。原因是终端节点的视口没有设置为clip = TRUE
,因此没有裁剪视口区域之外的图形元素。
我刚刚在 R-Forge 上的 partykit
包中解决了这个问题。尚未安排新的 CRAN 版本,但您可以查看 R-Forge 的 partykit-SVN 或下载当前的 partykit/R/plot.R 源代码。
【讨论】:
非常好!谢谢阿奇姆!当我尝试新的源代码时,我会告诉你。我意识到我的例子有点傻,我只是想快速说明缺少剪辑功能。谢谢:)partykit
软件包的新修复版本现已发布到 CRAN (1.0-2)。如果您使用它,您的示例将按需要工作。
抱歉,我花了这么长时间才回到这个问题上。我下载并尝试了新版本的partykit。我现在可以使用 plot(ct,terminal_panel = node_boxplot(ct,yscale =c(0,70)))
缩放 y 轴。但是,partykit 没有显示 y 轴 tic 标签有一个新问题。我将这个问题作为一个新线程发布在这里:link to post 任何帮助将不胜感激!
CRAN 上的partykit 包的新版本(1.0-4)修复了刻度线的问题,同时保留了绘图区域的剪裁。因此,使用该版本的软件包,您的两个请求都应该得到解决。以上是关于ctree 图的终端节点中的缩放图的主要内容,如果未能解决你的问题,请参考以下文章