興味深い質問です。私がこれについて正確に考えているなら、一定の許容差を持った最後の点、例えば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ではありませんか?あなたの解釈はまた、それが最後の最も高い数字であるので変曲点であると主張することもできます。 – Vedda