How to increase the font size of auto-generated R and p-value in ggscatter plot?

72 views Asked by At

I want to increase the font size of autogenerated r2 and p value. I used the code like + theme(text = element_text(size = 18)) but it did not make any changes?

The code used are given below

# Load data
data("mtcars")
df <- mtcars
# Convert cyl as a grouping variable
df$cyl <- as.factor(df$cyl)


ggscatter(df, x = "wt", y = "mpg",
          add = "reg.line",                         
          conf.int = TRUE,                          
          color = "cyl", palette = "jco",           
          shape = "cyl"                     
          )+
  stat_cor(aes(color = cyl), label.x = 3) +
 theme(text = element_text(size = 18))
2

There are 2 answers

1
Roland On BEST ANSWER

stat_cor uses geom_text. The documentation in help("geom_text") tells you that it "understands" the size aesthetic.

library(ggpubr)

#recommended way
ggscatter(df, x = "wt", y = "mpg",
          add = "reg.line",                         
          conf.int = TRUE,                          
          color = "cyl", palette = "jco",           
          shape = "cyl",
          cor.coef = TRUE,
          cor.coeff.args = list(aes(color = cyl), label.x = 3),
          cor.coef.size = 12
)

#alternatively
ggscatter(df, x = "wt", y = "mpg",
          add = "reg.line",                         
          conf.int = TRUE,                          
          color = "cyl", palette = "jco",           
          shape = "cyl"                     
) +
  stat_cor(aes(color = cyl), label.x = 3, size = 12)
0
jynxmaze On

stat_cor takes other arguments which pass pass to geom_text or geom_label, including "size" and "colour", so you can change your command like below

You can also try:

stat_cor( aes(label = paste(..rr.label.., ..p.label.., sep = "~`,`~")),
label.x = 0.5, method = "spearman",label.sep = "\n", size = 10)