You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据决策树输出为GrooveLength与Asymmetry散点图的点着色

解决方法

你只需要先拿到决策树对全量样本的分类/节点归属结果,再把该结果作为散点图的颜色映射变量即可,以下是具体实现代码:


前置步骤:获取决策树输出结果

假设你构建的决策树模型变量名为dt_model,先为数据集新增列存储决策树输出结果:

# 方案1:按最终预测分类结果上色,执行这行
seedfull$dt_class <- predict(dt_model, newdata = seedfull, type = "class")

# 方案2:如果需要按决策树终端节点路径分组上色(同一个分裂路径的样本同色),执行这行(仅适用于rpart构建的决策树)
seedfull$dt_node <- predict(dt_model, newdata = seedfull, type = "node")

1. 基础plot函数实现(适配你当前的代码写法)

twopoints <- seedfull[,c(8,7)]
# 按预测分类上色,你可以把dt_class换成dt_node实现按节点分组上色
plot(twopoints, 
     col = as.factor(seedfull$dt_class), 
     pch = 16, # 实心点样式更便于区分颜色
     xlab = "GrooveLength",
     ylab = "Asymmetry")
# 添加分类图例
legend("topright",
       legend = levels(as.factor(seedfull$dt_class)),
       col = seq_along(levels(as.factor(seedfull$dt_class))),
       pch = 16,
       title = "决策树分类结果")

2. ggplot2实现(效果更美观,自定义灵活)

library(ggplot2)
ggplot(seedfull, aes(x = GrooveLength, y = Asymmetry)) +
  geom_point(aes(color = as.factor(dt_class)), size = 2) + # 同样可替换dt_class为dt_node
  labs(color = "决策树分类结果") +
  theme_bw()

如果需要自定义颜色,可以加scale_color_brewer(palette = "Set2")或者手动指定scale_color_manual(values = c("red","blue","green"))调整。


内容的提问来源于stack exchange,提问作者Xray25

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:48:03