根据 geom_abline() 的等式在 geom_point() 上标记点

Labelling points on a geom_point() based on the equation of geom_abline()

今天我有一个有趣的问题要问你。任何帮助都会很棒。

我有 geom_plot()

set.seed(1)
list1 <- sample(10, 100, replace = T)
list2 <- sample(7, 100, replace = T)

df <- data.frame(list1, list2)
df

ggplot(data=df, aes(x=list1, y=list2)) + geom_point()

x3 <- c(10,6)
y3 <- c(1,7)

slope3 <- diff(y3)/diff(x3)

intercept3 <- y3[1] - slope*x3[1]

ggplot(data = df, aes(x=list1, y=list2)) +
  geom_point() + 
  geom_abline(data = NULL, intercept = intercept3, slope = slope3, col="red")

我最想做的是标记我绘制的 geom_abline() 上或右侧的所有点 我想使用 geom_label_repel() 函数使它看起来整洁,但是当我尝试这样做时,它只是标记了每个点!如果可能的话,我还想在未来根据其他标准进一步对绘制的 geom_abline() 或右侧的数据点进行子集化。

提前致谢!

你可以试试这个:

set.seed(1)
list1 <- sample(10, 100, replace = T)
list2 <- sample(7, 100, replace = T)

df <- data.frame(list1, list2)
df

ggplot(data=df, aes(x=list1, y=list2)) + geom_point()

x3 <- c(10,6)
y3 <- c(1,7)

slope3 <- diff(y3)/diff(x3)

intercept3 <- y3[1] - slope3*x3[1]

#Mutate
df$prod <- intercept3+slope3*df$list1
df$label <- ifelse(df$list2>df$prod,'text',NA)

ggplot(data = df, aes(x=list1, y=list2,label=label)) +
  geom_point() + 
  geom_abline(data = NULL, intercept = intercept3, slope = slope3, col="red")+
  geom_text(vjust=-0.5)