Home > OS >  Using R how do I add superscript in a title in ggplot2?
Using R how do I add superscript in a title in ggplot2?

Time:01-15

I've looked through some other threads and tried using expression and bquote but without any luck. I'm a beginner with R and would appreciate help with this specific example. I've found the following code on another website and it is working for me, but I can't make the 2 in R2 a superscript.

This is the initial code:

ggplotRegression <- function (fit) {

require(ggplot2)

ggplot(fit$model, aes_string(x = names(fit$model)[2], y = names(fit$model)[1]))   
    geom_point()  
    stat_smooth(method = "lm")  
    labs(title = paste("R2 = ",signif(summary(fit)$r.squared, 5),
                     "Intercept =",signif(fit$coef[[1]],5 ),
                     " Slope =",signif(fit$coef[[2]], 5),
                     " P =",signif(summary(fit)$coef[2,4], 5)))
}

ggplotRegression(lm(TOA_NDVI ~ Field_NDVI, data = NDVI_type))

This is one of the things I've tried:

ggplotRegression <- function (fit) {

require(ggplot2)

ggplot(fit$model, aes_string(x = names(fit$model)[2], y = names(fit$model)[1]))   
    geom_point()  
    stat_smooth(method = "lm")  
    labs(title = paste(expression("R^2 *="),signif(summary(fit)$r.squared, 5)),
                     "Intercept =",signif(fit$coef[[1]],5 ),
                     " Slope =",signif(fit$coef[[2]], 5),
                     " P =",signif(summary(fit)$coef[2,4], 5)))
}

ggplotRegression(lm(TOA_NDVI ~ Field_NDVI, data = NDVI_type)) 

Any help would be very much appreciated. Thank you.

CodePudding user response:

You can use "bquote". Here is the code:

ggplotRegression <- function (fit) {
  
  require(ggplot2)
  
  ggplot(fit$model, aes_string(x = names(fit$model)[2], y = names(fit$model)[1]))   
    geom_point()  
    stat_smooth(method = "lm")  
    labs(title = bquote(R^2== .(signif(summary(fit)$r.squared, 5))~
                          "Intercept = "~ .(signif(fit$coef[[1]],5 )) ~
                          " Slope = "~ .(signif(fit$coef[[2]], 5)) ~
                          " P = "~ .(signif(summary(fit)$coef[2,4], 5)) ))
}

ggplotRegression(lm(speed ~ dist, data = cars))

Here is the generated plot: enter image description here

  • Related