我正在使用ctree
并且我的数据集具有创建节点的因素的协变量。该协变量有足够的因子,并且它们的名称足够长,以至于它们在节点处创建的边中相互重叠。我想找到一种方法来阻止这种重叠。
我检查了其他问题并找到了一个可以提供帮助的答案。的情节ctree
依赖于grid
包,我可以使用函数在边缘写新标签。plot
我现在的问题是,当我创建树时,我不知道如何抑制默认打印的标签。我不太了解grid
或plot.party
弄清楚需要抑制哪个对象。
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)
生成的第一个节点的一条边为“2seater, compact, midsize, subcompact”,另一条边为“minivan, Pickup, suv”。我最终在情节中看到的是“2seater,compact,midsize,subcompaminivan,pickup,sub”。我已经将图形设备设为全屏。(我有其他只有一个节点的树,所以在全屏维度上看起来很奇怪,所以我不想来回走动。)
我的部分解决方案是
plot(irt, pop=FALSE)
seekViewport("edge1-1")
grid.text("2seater, compact,\n midsize, subcompact")
这会将“2seater,compact”堆叠在“midsize,subcompact”之上,并防止它们重叠“minivan,pickup,suv”。但是现在,我原来的太长标签还在情节中。我正在尝试修复的标签所连接的边缘在与新堆叠标签不兼容的地方有一个中断。修复那个边缘会很好,但真正的问题是在 edge1-1 上抑制原始的、太长的标签。