首页 > 解决方案 > 如何标记散点图上对角线以下的所有点

问题描述

如果点落在对角线下方,我想要变量 df 中的一列,其值为 TRUE 或 FALSE。情节只是为了说明这个概念。我非常坚持这一点,任何帮助表示赞赏。

# Test data
df <- data.frame(
  x = sample(1:100, 100, replace=FALSE),
  y = sample(1:100, 100, replace=FALSE))

library(ggplot2)
g <- ggplot(data=df, aes(x=x, y=y))
g + geom_point() +
    geom_abline(intercept = 25, slope = 1)

在此处输入图像描述

标签: r

解决方案


您可以尝试这样的事情(进一步扩展@Bas的建议)。您想要的值保存在变量ye中,您也可以将其更改为逻辑值。您也可以更改ye. 在这种情况下,我添加了数字,以便您可以看到标签:

library(ggplot2)
library(dplyr)

#Data
df <- data.frame(
  x = sample(1:100, 100, replace=FALSE),
  y = sample(1:100, 100, replace=FALSE))
#Create equation
df %>% mutate(ye=25+1*x,lab=ifelse(y<ye,y,NA)) -> df2
#Plot
ggplot(data=df2, aes(x=x, y=y,label=lab))+
  geom_point() +
  geom_abline(intercept = 25, slope = 1)+
  geom_text(nudge_y = 2,check_overlap = T,size=2)

输出: 在此处输入图像描述


推荐阅读