5

我想在绘图的上部绘制 BinaryTree,并在第二部分(底部)绘制第二个。这是一些示例代码,树的图完全忽略了由设置的分区选项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)

此代码不会在同一绘图(页面)中绘制两棵树。我该如何纠正?

即使遵循非常详细的答案在这种情况下也不起作用:由'plot'和'ggplot'并排生成的 绘图 ctree 的绘图忽略了所有已建立的选项。

4

1 回答 1

1

中的绘图party及其后继程序包partykit已实现grid,因此诸如此类的base图形选项不起作用。除了评论中的注释,您可以使用来实现类似的结果。par()mfrowgrid.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是默认情况下,绘图是在新页面上绘制的,而不是添加到可能存在的绘图中。

于 2020-07-29T14:59:17.653 回答