r - 如何更改 R 中 ctree 对象的绘图背景?

标签 r plot party

我正在使用 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背景。

因此,在当前版本的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
)

ctree with gray bg

获取此开发版partykit ,请转至R-Forge包裹的页面。您可以在那里查看源包(请参阅“SCM”)并手动安装它 - 或者您可以等到新包构建完成(请参阅“R 包”)。后者有望在几个小时内完成。

关于r - 如何更改 R 中 ctree 对象的绘图背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033239/

相关文章:

r - 派对工具包 : Change terminal node boxplots to bar graphs that shows mean and standard deviation

r - 绘图时 rmarkdown 出错

r - 不考虑堆叠区域 (ggplot2) 和 NA

r - 使用 rpart.plot 功能绘制 ctree

r - 如何根据R中两列的值创建虚拟变量?

r - 使用 Base R 绘制数据子集的图表

R - partykit - 自定义模型树节点和分割

r - 自动索引 R 中选定包中的数据集列表

r - 使用 ggplot2 在折线图中可视化 ..count..

R:如何从早到晚对每天的每小时测量进行排序,并根据此顺序添加一个数字?