3

I want to add "R^2 = 70%" to my plot using geom_text() (where ^ indicates a superscript).

Without the % sign, it's easy:

my.data <- data.frame(x=1:5, y=1:5)
p1      <- ggplot(my.data, aes(x=x, y=y)) + geom_point()
p1      <- p1 + geom_text(x=2.5, y=5, label="R^2 == 70", parse=TRUE)
p1

Adding % is trickier than expected. I managed to get it by adding a second geom_text() statement:

p1 <- p1 + geom_text(x=2.63, y=4.97, label="%")
p1

How can it be done with a single geom_text() statement?

user13424
  • 111
  • 1
  • 4

2 Answers2

4

This works...

geom_text(x=2.5, y=5, label="R^2 == 70*'%'", parse=TRUE)
Andrew Gustar
  • 17,295
  • 1
  • 22
  • 32
1


library(ggplot2)

my.data <- data.frame(x=1:5, y=1:5)
ggplot(my.data, aes(x=x, y=y)) + 
  geom_point() + 
  annotate("text", x = 2.5, y = 5, label = "paste(R ^ 2, \" = 70\", \"%\" )", parse = TRUE)

yeedle
  • 4,918
  • 1
  • 22
  • 22