有趣的問題。如果我正確地思考這個問題,那麼您正在尋找具有一定寬容度的最後一點 - 例如26。這可能有點破解,但它會起作用,並且您可以對其進行修改以適合您的數據。
ggplot設置
library(ggplot2)
b <- ggplot(data=diamonds, aes(carat)) + geom_freqpoly(binwidth = 0.1)
拐點功能
此功能的點是從上述定義的ggplot模型,返回「拐點」與來自先前給定容限數據點 - 例如> = 26 - 以及拐點向量中期望的最後一個數字。
get_infl <- function(ggplot_model, tolerance, last){
bg <- ggplot_build(ggplot_model)
dat <- bg$data[[1]]
y <- dat$y
x <- dat$x
loc <- tail(which(diff(y)>=tolerance),10)+1L
newloc <- loc[[length(loc) - last + 1]]
return(x[[newloc]])
}
與V系列新ggplot:寬容26和最後
ggplot(data=diamonds, aes(carat)) +
geom_freqpoly(binwidth = 0.1) +
geom_vline(xintercept = get_infl(b, 26, 1), color = "red")
與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也是一個拐點,因爲它是最後一個數字。 – Vedda