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

source share