Search code examples
rtextchartsggplot2annotations

Using different font styles in annotate (ggplot2)


I'm using the code below to generate a simple chart with some annotations:

require(ggplot2); data(mtcars)
ggplot(mtcars, aes(x = wt, y = mpg)) + 
  geom_point() +
  annotate("text", x = 4, y = 25, label = "This should be bold\nand this not",
           colour = "red") +
  geom_vline(xintercept = 3.2, colour = "red")

Simple plot

On that chart I would like to apply bold font to the first part of the phrase in the text annotation:

This should be bold

but the I wish for the remaining part of the text to remain unaltered with respect to the font face and style.


Solution

  • How about using plotmath syntax with parse = TRUE:

    ggplot(mtcars, aes(x = wt, y = mpg)) + 
        geom_point() +
        annotate("text", x = 4, y = 25, 
                label = 'atop(bold("This should be bold"),"this should not")',
                colour = "red", parse = TRUE) +
        geom_vline(xintercept = 3.2, colour = "red")
    

    enter image description here