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

如何标记散点图中对角线下的点并在df中添加判断列

嗨,这问题不难解决,我来一步步教你怎么做~

解决方案

1. 新增判断列

我们的核心需求是判断每个散点是否位于对角线y = x + 25的下方,对应数学条件就是点的y值小于该x值对应的对角线y值。直接用R的向量运算就能高效实现:

# 你的测试数据
df <- data.frame( 
  x = sample(1:100, 100, replace=FALSE), 
  y = sample(1:100, 100, replace=FALSE)
)

# 新增列:满足条件时为TRUE,否则为FALSE
df$below_line <- df$y < (df$x + 25)

这里逻辑很直观:对角线的方程是y = slope*x + intercept,这里slope=1、intercept=25,所以每个x对应的对角线y值是df$x +25,只要点的y值比这个小,就说明在对角线下方。

2. 可视化验证(可选)

如果想在散点图上直观区分两类点,可以用新增的列来设置点的颜色,这样能更清晰地验证结果:

library(ggplot2)

ggplot(data=df, aes(x=x, y=y, color=below_line)) + 
  geom_point(size=2) +  # 放大点让区分更明显
  geom_abline(intercept = 25, slope = 1, linetype="dashed", color="darkred", linewidth=1) +
  labs(title="散点与对角线的位置关系", 
       x="X轴", y="Y轴", 
       color="是否在对角线下方") +
  theme_minimal()

运行这段代码后,你会看到红色虚线是给定的对角线,不同颜色的点对应是否在下方的判断结果,一目了然。

拓展提示

如果你的对角线参数(斜率slope、截距intercept)有变化,只需要修改判断条件里的表达式就行。比如如果对角线是y = 0.5x + 10,那判断条件就改成:

df$below_line <- df$y < (0.5*df$x + 10)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:57:50