3

我正在使用party海报包制作一棵树,海报的背景是灰色的。我已经能够使用该命令将所有其他图(箱线图、散点图)的背景更改为灰色,par(bg = "grey")但这不适用于ctree.

例如,这会在灰色背景上绘制散点图:

airq <- subset(airquality, !is.na(Ozone))
par(bg="grey")
plot(Temp ~ Wind, data = airq)

但这不会在灰色背景上生成一棵树:

library("party")
air.ct <- ctree(Ozone ~ ., data = airq)
par(bg = "grey")
plot(air.ct, inner_panel=node_inner(air.ct, pval = TRUE, id = FALSE),
  terminal_panel = node_boxplot(air.ct, id = FALSE))

请帮忙,我的海报将于周四到期!

4

1 回答 1

3

party包及其后继者都partykit基于grid包进行可视化。因此,par()创建grid图形时忽略基本图形的功能。对于后者,有一个gpar()功能,但它不直接支持设置bg背景。

因此,在当前版本中partypartykit通过简单的参数设置背景颜色是不可能的 - 只能通过提供适应的面板功能。

但是,由于某些面板功能已经部分支持此功能,因此我partykit在 R-Forge 上调整了该包以启用设置背景。为此需要最新版本的软件包:

library("partykit")
packageDescription("partykit")$Version
## [1] "1.0-5"   

这棵树可以像你的例子一样生长:

airq <- subset(airquality, !is.na(Ozone))
air.ct <- ctree(Ozone ~ ., data = airq)

然后我们先添加一个灰色背景的空页面:

grid.newpage()
grid.rect(gp = gpar(col = "gray", fill = "gray"))

然后可以添加树:

plot(air.ct,
  ip_args = list(id = FALSE, fill = "gray"),
  ep_args = list(fill = "gray"),
  tp_args = list(id = FALSE, bg = "gray", fill = "slategray"),
  newpage = FALSE
)

带灰色 bg 的 ctree

要获取此开发版本partykit,请前往软件包的R-Forge页面。在那里,您可以检查源包(参见“SCM”)并手动安装它 - 或者您可以等到构建了新包(参见“R Packages”)。后者应该有望在几个小时内完成。

于 2015-12-02T03:08:26.683 回答