Reputation: 131
For my legend in ggplot2 I have 2 categories, how do I italicize only 1 category and not the other?
As an example, consider the following plot. How can I set "Manual" in italics?
library(ggplot2)
ggplot(data = mtcars, aes(x = as.factor(am), fill = as.factor(am))) +
geom_bar() +
scale_fill_discrete(
"Transmission",
breaks = c(0, 1),
labels = c("Automatic", "Manual")
)
Created on 2020-01-01 by the reprex package (v0.3.0)
Upvotes: 13
Views: 19855
Reputation: 17790
I have been working on a simpler and more flexible way to achieve this goal, via the ggtext package that enables markdown styling in ggplot. This is currently under development but should be released to CRAN soon (early 2020).
library(ggplot2) # may require: remotes::install_github("tidyverse/ggplot2")
library(ggtext) # remotes::install_github("clauswilke/ggtext")
ggplot(data = mtcars, aes(x = as.factor(am), fill = as.factor(am))) +
geom_bar() +
scale_fill_discrete(
"Transmission",
breaks = c(0, 1),
labels = c("Automatic", "*Manual*")
) +
theme(legend.text = element_markdown())
Created on 2020-01-01 by the reprex package (v0.3.0)
Upvotes: 14
Reputation: 5424
You can use expression
and italic
to create italicized text on labels.
library(ggplot2)
ggplot(data = mtcars, aes(x = as.factor(am), fill = as.factor(am))) +
geom_bar() +
scale_fill_discrete(
"Transmission",
breaks = c(0, 1),
labels = c("Automatic", expression(italic("Manual")))
)
Created on 2020-01-01 by the reprex package (v0.3.0)
Upvotes: 19