Colorize parts of the title in a plot Colorize parts of the title in a plot r r

Colorize parts of the title in a plot


This is a quite simple solution to your problem:

plot(x, y)title(expression("title (" * phantom("slope=1)") * ")"), col.main = "black")title(expression(phantom("title (") * "slope=1"), col.main = "red")

enter image description here


A solution for ggplot2 plots using the ggtext package

library(ggplot2)# devtools::install_github("clauswilke/ggtext")library(ggtext)p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) +   geom_point(size = 3)p +   labs(title = "New plot <b style='color:#009E73'>title</b>",        subtitle = "A <b style='color:#D55E00'>subtitle</b>") +  theme_classic(base_size = 24) +  theme(plot.title = element_markdown(lineheight = 1.1),        plot.subtitle = element_markdown(lineheight = 1.1))

Created on 2019-08-11 by the reprex package (v0.3.0)


The ggtext package can do this

enter image description here

library(ggtext) #remotes::install_github("wilkelab/ggtext")ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +  geom_point(size = 3) +  scale_color_manual(    name = NULL,    values = c(setosa = "#0072B2", virginica = "#009E73", versicolor = "#D55E00"),    labels = c(      setosa = "<i style='color:#0072B2'>I. setosa</i>",      virginica = "<i style='color:#009E73'>I. virginica</i>",      versicolor = "<i style='color:#D55E00'>I. versicolor</i>")  ) +  labs(    title = "**Fisher's *Iris* dataset**      <span style='font-size:11pt'>Sepal width vs. sepal length for     <span style='color:#0072B2;'>setosa</span>,     <span style='color:#D55E00;'>versicolor</span>, and    <span style='color:#009E73;'>virginica</span>    </span>",    x = "Sepal length (cm)", y = "Sepal width (cm)"  ) +  theme_minimal() +  theme(    plot.title = element_markdown(lineheight = 1.1),    legend.text = element_markdown(size = 11)  )