在 r 中的决策树中叠加直方图
Overlay histogram plot in a decision tree in r
我想创建一个决策树图,它在每个节点中显示一个叠加直方图,如图所示:
以下代码创建左侧图片:
library(earth)
library(rpart)
library(rpart.plot)
a <- rpart(O3~., data=ozone1, cp=.2)
prp(a, type=4, fallen=T, branch=.3, round=0, leaf.round=9,
clip.right.labs=F, under.cex=1,
box.palette="GnYlRd",
prefix="ozone\n", branch.col="gray", branch.lwd=2,
extra=101, under=T, lt=" < ", ge=" >= ", cex.main=1.5)
我认为 rpart.plot 中的 node.fun 可以完成这项工作,但我不知道如何实现它。
不幸的是,rpart.plot 的当前版本 2.1.2 无法做到这一点。
正如您提到的,您或许可以使用自定义 node.fun 来绘制直方图。但是 rpart.plot 不知道如何计算出直方图的绘制大小,因此它不知道如何在页面上正确定位绘图的元素。
我会将其添加到包 TODO 列表中并考虑实施它,但不幸的是,这不会很快发生。
我想创建一个决策树图,它在每个节点中显示一个叠加直方图,如图所示:
以下代码创建左侧图片:
library(earth)
library(rpart)
library(rpart.plot)
a <- rpart(O3~., data=ozone1, cp=.2)
prp(a, type=4, fallen=T, branch=.3, round=0, leaf.round=9,
clip.right.labs=F, under.cex=1,
box.palette="GnYlRd",
prefix="ozone\n", branch.col="gray", branch.lwd=2,
extra=101, under=T, lt=" < ", ge=" >= ", cex.main=1.5)
我认为 rpart.plot 中的 node.fun 可以完成这项工作,但我不知道如何实现它。
不幸的是,rpart.plot 的当前版本 2.1.2 无法做到这一点。
正如您提到的,您或许可以使用自定义 node.fun 来绘制直方图。但是 rpart.plot 不知道如何计算出直方图的绘制大小,因此它不知道如何在页面上正确定位绘图的元素。
我会将其添加到包 TODO 列表中并考虑实施它,但不幸的是,这不会很快发生。