在partykit绘制树中的内部节点中添加条形图到圆圈

时间:2016-12-22 19:08:51

标签: r plot party

partykit包在树的终点节点绘制条形图,可以直观地呈现因变量类的后验概率。

我想在标准圆/椭圆下方的内部节点中添加这些条形图。这需要使用node_inner()node_barplot()混合的函数到inner_panel方法的plot()参数。

但是这些功能具有相当复杂的内部结构,我不知道如何混合两者以便必须垂直堆叠内部图。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是可能的,它看起来不太吸引人。如果要显示拆分变量的名称和p值,最好调整mainlab的{​​{1}}参数。在答案中 Ctree classification with weights - results displayed插图中有如何在标题中包含权重 - 以类似的方式显示分割变量和p值。

如果您决定设置一个具有两个子面板的新面板功能,则需要进行一些node_barplot编程(grid方法所基于的图形系统)。您需要设置plot(),然后浏览生成的grid.layout

viewport

使用生成的面板功能,您可以执行以下操作:

make_inner_and_barplot <- function(object, ...) {
  function(node) {  
    ## layout
    pushViewport(viewport(layout = grid.layout(nrow = 2, ncol = 1,
      heights = unit(c(0.2, 0.8), "npc"))))
    ## background color
    grid.rect(gp = gpar(fill = "white", col = 0))
    ## circle
    pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 1))
    node_inner(object)(node)
    popViewport()
    ## circle
    pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 2))
    node_barplot(object, id = FALSE, ...)(node)
    popViewport(2)
  }
}

inner and barplot