R ggplot2: changing font sizes in a legend

I have two lines in my legend. How to make one line in bold, color blue and large font and one line with small fonts, red and italics?

library(ggplot2) library(gridExtra) p <- qplot(data = mtcars, wt, mpg) print(arrangeGrob(p, legend = textGrob("large font size colour blue bold\n small font size colour red italic", rot = -90, vjust = 1))) 

Thank you for your help.

+6
source share
2 answers

You need to split the text into two textGrob s:

 library(ggplot2) library(gridExtra) p <- qplot(data = mtcars, wt, mpg) t1 <- textGrob("small font size colour red italic", gp = gpar(fontsize = 12, col = 'red', fontface = 'italic'), rot = -90, vjust = 1) t2 <- textGrob("large font size colour blue bold", gp = gpar(fontsize = 20, col = 'blue', fontface = 'bold'), rot = -90, vjust = 1) print(arrangeGrob(p, t1, t2, widths = c(9/10, 1/20, 1/20), nrow = 1)) 

enter image description here

+10
source

Solution using expression and atop :

 p <- qplot(data = mtcars, wt, mpg) print(arrangeGrob(p, legend= textGrob(expression(atop("large font size colour blue bold\n", atop(italic("small font size colour red italic")))), rot = -90, vjust = 1, gp=gpar(fontsize=16,fontface="bold")))) 

enter image description here

+4
source

Source: https://habr.com/ru/post/980823/


All Articles