在绘制来自partykit的ctree输出时,如何抖动节点拆分字符串?

Mic*_*lle 6 graphics plot r par

我有一个问题,我在分类树中主要使用分类数据,设置为一类因子.我正在使用partykitR中的软件包,而不像party之前的答案那样建议前一个软件包更适合处理图形输出.

我的真实数据集中没有很多节点(大约7个),但是我对一些变量有很多因子水平,我遇到的问题是分裂左侧的因子水平和右侧的因子水平是相互干扰.具体而言,这是因为因子水平列表的水平方向与因子水平的长度相结合.

我可以使用MASS包中的Aids2数据集重现该问题.这是一个无意义的示例,但它会生成我想要解决的行为

library("partykit")
SexTest <- ctree(sex ~ ., data=Aids2)
plot(SexTest)
Run Code Online (Sandbox Code Playgroud)

如果查看节点1的节点拆分信息,您将看到我描述的行为:

在我的真实数据框架中,缩小字体仅在我将其降低到4点时才有效,这是不可读的.

有没有办法为该字符串定义文本框,并启用文本换行?我已经查看pargpar尝试找到解决方案,但一直没有成功.另一种适合的选择是错开每个节点的因子信息的垂直位置,使它们一个位于另一个之下.

小智 3

嗯。我去过那儿。在不修改 partykit 包的内部结构的情况下,我不知道有什么方法可以改进该特定大小的输出(我经常遇到以下问题:使用多分法绘制树时,条形图输出上的 X 轴标签太长)因变量)。

这是一个丑陋的解决方法,但您可以从树中获取输出,以了解哪些类别在哪里,然后使用 GIMP 之类的工具来适当地突出显示您的幻灯片/报告/其他内容的图像。

Model formula:
sex ~ state + diag + death + status + T.categ + age

Fitted party:
[1] root
|   [2] T.categ in hs, hsid, haem, other
|   |   [3] T.categ in hs, hsid, haem
|   |   |   [4] state in NSW, Other, VIC: M (n = 2386, err = 0.0%)
|   |   |   [5] state in QLD: M (n = 197, err = 0.5%)
|   |   [6] T.categ in other: M (n = 70, err = 10.0%)
|   [7] T.categ in id, het, blood, mother: M (n = 190, err = 42.6%)

Number of inner nodes:    3
Number of terminal nodes: 4
Run Code Online (Sandbox Code Playgroud)

您还可以将输出的大小调整为更大的值,例如使用 png()

png('tmp.png',width=1024,height=768)
plot(SexTest)
dev.off()
Run Code Online (Sandbox Code Playgroud)

绘图的更大分辨率输出