我想在图的上部绘制二叉树,并在第二部分(底部)制作第二个二叉树。下面是一些示例代码,显示树的图完全忽略了 par()
设置的分区选项。
library("party")
### regression
airct <- ctree(Ozone ~ ., data = subset(airquality, !is.na(Ozone)))
### classification
irisct <- ctree(Species ~ .,data = iris)
par(mfrow = c(2, 1))
plot(airct)
plot(irisct)
此代码不会在同一图(页面)中绘制两棵树。我该如何纠正?即使在这种情况下遵循非常详细的答案也不起作用:plots generated by 'plot' and 'ggplot' side-by-side
ctree 的绘图忽略了所有已建立的选项。
最佳答案
party
中的情节及其后续包 partykit
在 grid
中实现因此 base
来自 par()
的图形选项如 mfrow
不工作。除了评论中的备注外,您还可以使用 grid.layout()
以达到类似的结果。
在普通网格中这样做有点技术性,但代码不应该太难理解:
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()
newpage = FALSE
的原因论点是默认情况下,绘图是在新页面上绘制的,而不是添加到可能存在的绘图中。
关于r - BinaryTree (ctree, party) 的绘图忽略了 par() 的绘图选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249155/