根据数据向geom_freqpoly绘图添加垂直线

根据数据向geom_freqpoly绘图添加垂直线,r,ggplot2,R,Ggplot2,我想在ageom_freqpoly上添加一条垂直线,其中根据曲线的趋势确定直线的x轴位置。具体地说,我在寻找曲线变平的x轴位置——最后一个拐点 举例说明: library(ggplot2) ggplot(data=diamonds, aes(carat))+geom_freqpoly(binwidth = 0.1) 给出了这个图: 我想在x=~2.5处添加一条垂直线,以获得: 所以我的问题是如何找到决定x轴位置的最后一个拐点?有趣的问题。如果我想对了,你是在寻找最后一点,有一定的容忍度,比如

我想在a
geom_freqpoly
上添加一条垂直线,其中根据曲线的趋势确定直线的x轴位置。具体地说,我在寻找曲线变平的x轴位置——最后一个拐点

举例说明:

library(ggplot2)
ggplot(data=diamonds, aes(carat))+geom_freqpoly(binwidth = 0.1)
给出了这个图:

我想在x=~2.5处添加一条垂直线,以获得:


所以我的问题是如何找到决定x轴位置的最后一个拐点?

有趣的问题。如果我想对了,你是在寻找最后一点,有一定的容忍度,比如说26。这可能是一个有点黑客,但它会工作,你可以修改它为您的数据

ggplot设置

library(ggplot2)
b <- ggplot(data=diamonds, aes(carat)) + geom_freqpoly(binwidth = 0.1)

带有V线的新ggplot:公差为26,从上一个开始为第二个

ggplot(data=diamonds, aes(carat)) + 
  geom_freqpoly(binwidth = 0.1) + 
  geom_vline(xintercept = get_infl(b, 26, 2), color = "red")

拐点不是在2吗?你的解释也可能认为4也是一个转折点,因为它是最后一个最高的数字。
ggplot(data=diamonds, aes(carat)) + 
  geom_freqpoly(binwidth = 0.1) + 
  geom_vline(xintercept = get_infl(b, 26, 1), color = "red")
ggplot(data=diamonds, aes(carat)) + 
  geom_freqpoly(binwidth = 0.1) + 
  geom_vline(xintercept = get_infl(b, 26, 2), color = "red")