ggplot2: add regression equations and R2 and adjust their positions on plot
18,196
Try stat_poly_eq
from package ggpmisc
:
library(ggpmisc)
formula <- y ~ x
ggplot(df, aes(x= new_price, y= carat, color = cut)) +
geom_point(alpha = 0.3) +
facet_wrap(~clarity, scales = "free_y") +
geom_smooth(method = "lm", formula = formula, se = F) +
stat_poly_eq(aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
label.x.npc = "right", label.y.npc = 0.15,
formula = formula, parse = TRUE, size = 3)
returns
See ?stat_poly_eq
for other options to control the output.
Author by
shiny
Updated on June 30, 2022Comments
-
shiny almost 2 years
Using
df
and the code belowlibrary(dplyr) library(ggplot2) library(devtools) df <- diamonds %>% dplyr::filter(cut%in%c("Fair","Ideal")) %>% dplyr::filter(clarity%in%c("I1" , "SI2" , "SI1" , "VS2" , "VS1", "VVS2")) %>% dplyr::mutate(new_price = ifelse(cut == "Fair", price* 0.5, price * 1.1)) ggplot(df, aes(x= new_price, y= carat, color = cut))+ geom_point(alpha = 0.3)+ facet_wrap(~clarity, scales = "free_y")+ geom_smooth(method = "lm", se = F)
I got this plot
Thanks to @kdauria's answer to this question, I added regression equations and R2 to the plot as below
source_gist("524eade46135f6348140") ggplot(df, aes(x= new_price, y= carat, color = cut))+ stat_smooth_func(geom="text",method="lm",hjust=0,parse=TRUE)+ geom_point(alpha = 0.3)+ facet_wrap(~clarity, scales = "free_y")+ geom_smooth(method = "lm", se = F)
Now, I want to adjust the position of the regression equations and R2 to be at a specific place in each of the facets (for example at the bottom right in each facet "e.g. 0.2 y and 0.8 x).
I tried to adjust the position through
vjust
andhjust
but it didn't work.Any suggestions would be highly appreciated.
-
Uwe almost 8 yearsPlease, see the answer to ggplot2: Adding Regression Line Equation and R2 on graph by the author of the
ggpmisc
package for more details or contact the author.