在R Studio中绘制决策树报错:data需为data.frame或可转换对象
问题原因
rpart.plot()函数的作用是直接生成决策树的基础绘图,它的返回值是一个包含绘图坐标、颜色等信息的列表,并非ggplot2要求的数据框(或可被fortify()转换的对象)。你把这个列表传给geom_raster()的data参数,自然会触发“data必须是数据框”的错误。
解决方案
方案1:直接使用rpart.plot绘图(最简单)
不需要额外的ggplot2代码,直接执行rpart.plot()就会在RStudio绘图窗口生成图形:
library(rpart.plot) # 直接绘制决策树,无需赋值给变量 rpart.plot(modelo_arbol, type = 2, extra = 101, under = TRUE, fallen.leaves = TRUE)
方案2:用ggplot2渲染决策树(需借助专门包)
如果一定要用ggplot2的语法绘制,推荐使用ggparty包(专门适配ggplot的决策树绘图工具),示例代码如下:
library(ggparty) library(rpart) # 假设modelo_arbol是rpart训练得到的决策树模型 ggparty(modelo_arbol) + # 绘制节点分割变量标签 geom_node_label(aes(label = splitvar), fontface = "bold") + # 绘制分割条件 geom_node_splitvar() + # 绘制叶子节点的分布(可根据需求调整) geom_node_plot( gglist = list(geom_bar(aes(x = "", fill = fitted), stat = "count")), shared_axis = TRUE ) + theme_void()
内容的提问来源于stack exchange,提问作者user17050892
相关产品推荐
相关产品推荐

