Using different font styles in annotate (ggplot2)

2019-01-18 03:10发布

问题:

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")

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.

回答1:

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")



回答2:

If you don't have a problem with splitting it up in two annotations, you could just do:

annotate("text", x = 4, y = 25, label = "This should be bold",
       colour = "red", fontface =2)+
annotate("text", x = 4, y = 24, label = "and this not",
       colour = "red")