Reputation: 11082
Is it possible to colorize parts of the title in a plot?
x = 1:10
y = 1:10
plot(x, y, main="title (slope=1)")
In this plot I'd like to change the color of slope=1
to red.
Upvotes: 27
Views: 19867
Reputation: 52308
The ggtext package can do this
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)
)
Upvotes: 1
Reputation: 28371
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)
Upvotes: 7
Reputation: 807
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")
Upvotes: 36