stat_smooth()
withを使用する場合geom_point
、影付きのフィット領域を削除する方法はありますが、その外側の境界のみを描画しますか? 次のような方法で影付きの領域を削除できることを知っています。
geom_point(aes(x=x, y=y)) + geom_stat(aes(x=x, y=y), alpha=0)
しかし、その外側の境界 (外側の曲線) をかすかな黒い線として表示するにはどうすればよいですか?
stat_smooth()
withを使用する場合geom_point
、影付きのフィット領域を削除する方法はありますが、その外側の境界のみを描画しますか? 次のような方法で影付きの領域を削除できることを知っています。
geom_point(aes(x=x, y=y)) + geom_stat(aes(x=x, y=y), alpha=0)
しかし、その外側の境界 (外側の曲線) をかすかな黒い線として表示するにはどうすればよいですか?
= NAと併用geom_ribbon
することもできます。fill
gg <- ggplot(mtcars, aes(qsec, wt))+
geom_point() +
stat_smooth( alpha=0,method='loess')
rib_data <- ggplot_build(gg)$data[[2]]
ggplot(mtcars)+
stat_smooth(aes(qsec, wt), alpha=0,method='loess')+
geom_point(aes(qsec, wt)) +
geom_ribbon(data=rib_data,aes(x=x,ymin=ymin,ymax=ymax,col='blue'),
fill=NA,linetype=1)
...そして、何らかの理由で垂直バーが必要ない場合は、2 つのgeom_line
レイヤーを使用できます。
ggplot(mtcars)+
stat_smooth(aes(qsec, wt), alpha=0,method='loess')+
geom_point(aes(qsec, wt)) +
geom_line(data = rib_data,aes(x = x,y = ymax)) +
geom_line(data = rib_data,aes(x = x,y = ymin))
おそらくもっと簡単な方法がありますが、最初はこれを試してみてください。で信頼区間のデータを取得し、ggbuild
次に使用しますgeom_line
# create a ggplot object with a linear smoother and a CI
library(ggplot2)
gg <- ggplot(data = mtcars, aes(x = wt, y = mpg)) +
geom_point() +
geom_smooth(method = "lm")
gg
# grab the data from the plot object
gg_data <- ggplot_build(gg)
str(gg_data)
head(gg_data$data[[2]])
gg2 <- gg_data$data[[2]]
# plot with 'CI-lines' and the shaded confidence area
ggplot(data = mtcars, aes(x = wt, y = mpg)) +
geom_point() +
geom_smooth(method = "lm", se = TRUE, size = 1) +
geom_line(data = gg2, aes(x = x, y = ymin), size = 0.02) +
geom_line(data = gg2, aes(x = x, y = ymax), size = 0.02)
# plot with 'CI-lines' but without confidence area
ggplot(data = mtcars, aes(x = wt, y = mpg)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, size = 1) +
geom_line(data = gg2, aes(x = x, y = ymin), size = 0.02) +
geom_line(data = gg2, aes(x = x, y = ymax), size = 0.02)