Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何绘制大型ctree()以避免重叠节点_R_Output_Decision Tree - Fatal编程技术网

如何绘制大型ctree()以避免重叠节点

如何绘制大型ctree()以避免重叠节点,r,output,decision-tree,R,Output,Decision Tree,当我从partypackage绘制ctree()的决策树结果时,字体太大,框也太大。它们与其他节点重叠 有没有办法自定义plot()的输出,使框和字体更小 简短的回答似乎是:不,您不能更改字体大小,但还有一些好的选择 我知道三种可能的解决办法。首先,可以更改绘图中的其他参数,使其更紧凑。其次,您可以将其写入图形文件并查看该文件。第三,您可以在partykit包中使用ctree()的另一种实现,这是一些作者编写的较新的包 默认绘图示例 这稍微好一点,可以进一步改进。为了弄清楚这些细节,我最初做了

当我从
party
package绘制
ctree()
的决策树结果时,字体太大,框也太大。它们与其他节点重叠


有没有办法自定义
plot()
的输出,使框和字体更小

简短的回答似乎是:不,您不能更改字体大小,但还有一些好的选择

我知道三种可能的解决办法。首先,可以更改绘图中的其他参数,使其更紧凑。其次,您可以将其写入图形文件并查看该文件。第三,您可以在partykit包中使用ctree()的另一种实现,这是一些作者编写的较新的包

默认绘图示例

这稍微好一点,可以进一步改进。为了弄清楚这些细节,我最初做了
class(airct)
,它返回了“BinaryTree”。有了这些信息,我开始阅读
?plot.BinaryTree

写入文件 第二个简单的解决方案是将绘图写入文件,然后查看文件。您可能需要调整设置以找到最佳匹配

png("airct.png", res=80, height=800, width=1600) 
   plot(airct) 
dev.off()
用partykit包打印 最后,您可以使用一些相同的作者对party包的更新且尚未完成的重新实现。此时(2012年12月),他们唯一重新完成的功能是
ctree()
。此版本允许您更改字体大小

    library(partykit) 
    airct <- ctree(Ozone ~ ., data = airq)
    class(airct)  # different class from before
    # "constparty" "party"  
plot(airct, gp = gpar(fontsize = 6),     # font size changed to 6
  inner_panel=node_inner,
  ip_args=list(
       abbreviate = TRUE, 
       id = FALSE)
  )
库(partykit)
airct另一个选择(它不会改变你想要的,但可能会解决潜在的问题)是改变图形本身的大小,正如我在课堂上为我的作业所学的那样

更换以下部件中的r:

{r}
与:

其中,X和Y需要由您根据您认为更好的尺寸选择的数字来替换


,将在整个文档中更详细、更全面地讨论此操作。

谢谢你,Matt。您是否碰巧知道我可以向每个圆节点显示N=?我一直在找,但找不到。谢谢你,恐怕不要了。如果您愿意切换方法,您当然可以使用rpart:
library(partykit);airct=rpart(臭氧),数据=airq;绘图(airct);text(test,use.n=T,all=T)
对于任何方法,您都应该能够确定Ns,只是它们在绘图方法的灵活性方面有所不同。JPC,您最好检查以显示n=
    library(partykit) 
    airct <- ctree(Ozone ~ ., data = airq)
    class(airct)  # different class from before
    # "constparty" "party"  
plot(airct, gp = gpar(fontsize = 6),     # font size changed to 6
  inner_panel=node_inner,
  ip_args=list(
       abbreviate = TRUE, 
       id = FALSE)
  )
{r}
{r, fig.width=X, fig.height=Y}