我正在使用 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))
请帮忙,我的海报将于周四到期!
最佳答案
两者party
包及其继任者 partykit
均基于 grid
可视化包。因此,par()
创建时忽略基础图形的函数 grid
图形。对于后者,有一个 gpar()
功能但不直接支持设置bg
背景。
因此,在当前版本的party
或 partykit
无法通过简单的参数设置背景颜色 - 只能通过提供适配的面板功能。
但是,由于某些面板功能已部分支持此功能,因此我调整了 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
)
获取此开发版
partykit
,请转至R-Forge包裹的页面。您可以在那里查看源包(请参阅“SCM”)并手动安装它 - 或者您可以等到新包构建完成(请参阅“R 包”)。后者有望在几个小时内完成。
关于r - 如何更改 R 中 ctree 对象的绘图背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033239/