gpt4 book ai didi

R partykit::ctree 边缘偏移标签

转载 作者:行者123 更新时间:2023-12-04 10:40:40 27 4
gpt4 key购买 nike

我正在与 ctree 一起工作并且我的数据集具有创建节点的协变量。该协变量有足够多的因子,并且它们的名称足够长,以至于它们在节点处创建的边中彼此重叠。我想找到一种方法来阻止这种重叠。

查了其他问题,发现一个answer这提供了一些帮助。 ctree 的情节依赖于 grid package,我可以使用函数在边缘上写新标签。我现在的问题是,当我 plot 时,我不知道如何抑制默认打印的标签。那个树。我不太了解gridplot.party找出需要抑制的对象。

下图中我的问题示例:
example of plot with overlapping labels on first edge
我的示例问题的代码:

libary(partykit)
library(tidyverse) #this is here for the mpg data set in next line. not required for partykit
data(mpg)
irt <- ctree(hwy~as.factor(class),data=mpg)
plot(irt)

生成的第 1 个节点的一条边带有“2seater、compact、midsize、subcompact”,另一条边带有“minivan、pickup、suv”。我最终在情节中看到的是“2seater,紧凑型,中型,subcompaminivan,皮卡,sub”。我已经使图形设备全屏显示。 (我还有其他只有一个节点的树,因此在全屏尺寸下这些树看起来很奇怪,所以我不想来回走动。)

我的部分解决方案是
plot(irt, pop=FALSE)
seekViewport("edge1-1")
grid.text("2seater, compact,\n midsize, subcompact")

plot with partial fix of bad labels on edge 1

这将“2seater, compact”叠加在“中型、超小型”之上,并防止它们重叠“小型货车、皮卡、SUV”。但是现在,我在情节中仍然有原来的太长标签。我正在尝试修复的标签所附的边缘在一个与新堆叠标签不兼容的地方有一个中断。修复那个边缘会很好,但真正的问题是抑制 edge1-1 上的原始标签太长。

最佳答案

边缘标签由函数 edge_simple() 绘制它为边缘标签提供了各种理由,请参阅 ?edge_simple .仅当边缘标签平均长于 justmin 时才应用对齐方式。 , 默认为 Inf (即:没有理由)。各种理由都是可能的(交替、增加、减少或相等)。

因此,在您的情况下,最简单的解决方案可能是设置 justmin到足够小的有限值。或者(或另外)你也可以通过设置 gpar(fontsize = ...) 来减小字体大小。 .为了说明,以下两个示例都是在 6 英寸 x 8 英寸 PNG 设备上生成的:

library("partykit")
data("mpg", package = "ggplot2")
irt <- ctree(hwy ~ factor(class), data = mpg)
plot(irt, ep_args = list(justmin = 15))

ctree-justmin
plot(irt, ep_args = list(justmin = 15), gp = gpar(fontsize = 10))

ctree-justmin-fontsize

关于R partykit::ctree 边缘偏移标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55031361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com