BinaryTree(ctree,party)的绘图忽略par()的绘图选项

时间:2013-11-27 17:28:46

标签: r plot binary-tree par

我想在绘图的uppper部分绘制BinaryTree,在第二部分(底部)绘制第二个。下面是一些示例代码,表示树的图完全忽略了par()

设置的分区选项
par(mfrow=c(1,2))
set.seed(290875)
### regression
airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq,
controls = ctree_control(maxsurrogate = 3))
airct
plot(airct)
mean((airq$Ozone - predict(airct))^2)
### extract terminal node ID, two ways
all.equal(predict(airct, type = "node"), where(airct))
### classification
irisct <- ctree(Species ~ .,data = iris)
irisct <- ctree(Species ~ .,data = iris)

此代码不会在同一个图(页面)中绘制两个(相同的)树。我怎么能纠正这个?

即使遵循非常详细的答案在这种情况下也不起作用:plots generated by 'plot' and 'ggplot' side-by-side ctree的绘图忽略了所有已建立的选项。

1 个答案:

答案 0 :(得分:1)

party中的图及其后续包partykitgrid中实现,因此base中的par()图形选项(例如{{1}) } 不工作。除了评论中的评论外,您还可以使用mfrow获得类似的结果。

在纯网格中这样做有点技术性,但是代码应该不太难遵循:

grid.layout()

party grid

使用grid.newpage() pushViewport(viewport(layout = grid.layout(2, 1))) pushViewport(viewport(layout.pos.row = 1, layout.pos.col = 1)) plot(airct, newpage = FALSE) popViewport() pushViewport(viewport(layout.pos.row = 2, layout.pos.col = 1)) plot(irisct, newpage = FALSE) popViewport() 参数的原因是,默认情况下,绘图是在新页面上绘制的,而不是添加到可能存在的绘图中。