Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 377
Konrad Avatar asked Jul 22 '15 16:07

Konrad


People also ask

Can you change font in ggplot2?

How can I change the default font size in ggplot2? Set base_size in the theme you're using, which is theme_gray() by default. The base font size is 11 pts by default. You can change it with the base_size argument in the theme you're using.

What font does ggplot2 use?

Using Inkscape, the default font for all my ggplot2 plots is Arial.


2 Answers

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") 
like image 62
Rottmann Avatar answered Oct 10 '22 09:10

Rottmann


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

like image 34
aosmith Avatar answered Oct 10 '22 10:10

aosmith