如何在ggplot中添加截断线条以正确绘制决策树决策边界
解决方案:绘制截断的决策边界线
你碰到的问题根源在于geom_hline()和geom_vline()默认会绘制贯穿整个绘图区域的线条,所以才会把数据集分成四个区域。要实现只在竖线右侧(区间[cut1, 1])绘制水平线的需求,用geom_segment()替代geom_hline()是最直接的方法——它可以精确控制线段的起止位置。
修改后的代码示例
data_plot <- data.frame(x=runif(100,0,1), y=runif(100,0,1)) cut1 <- 0.5 cut2 <- 0.5 ggplot(data_plot, aes(x=x, y=y)) + geom_point() + geom_vline(xintercept = cut1) + # 保留竖线分割 # 绘制仅在[cut1, 1]区间内的水平线 geom_segment(x = cut1, xend = 1, y = cut2, yend = cut2)
代码说明
geom_segment()的参数明确指定了线段的起点(x=cut1, y=cut2)和终点(xend=1, yend=cut2),这样水平线就只会出现在竖线右侧的区域里。- 最终绘图会被分成三个区域:竖线左侧的一个区域,以及竖线右侧被水平线分割的上下两个区域,完全符合你的预期。
如果后续需要调整分割位置,只需要修改cut1和cut2的数值即可,这个方法适配动态调整的场景。
内容的提问来源于stack exchange,提问作者Winger 14
相关产品推荐
相关产品推荐

