When I make a map using ggplot2
and attempt to italicize part of the figure title using a combination of expression()
and italic()
using a string, my map comes out as desired:
plottitle <- expression(paste('Example map with ', italic('italics')))
crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
states_map <- map_data("state")
map <- ggplot(crimes, aes(map_id = state)) +
geom_map(aes(fill = Murder),
map = states_map) +
expand_limits(x = states_map$long,
y = states_map$lat) +
labs(title = plottitle)
map
However, when I try to do the same thing, but use an object instead of a string, the object does not evaluate to the desired string:
word <- 'italics'
plottitle2 <- expression(paste('Example map with ', italic(word)))
map <- ggplot(crimes, aes(map_id = state)) +
geom_map(aes(fill = Murder),
map = states_map) +
expand_limits(x = states_map$long,
y = states_map$lat) +
labs(title = plottitle2)
map
How can I get the vector word
to evaluate before applying italic()
?
bquote or substitute should work,
a = 'text'
plot(1,1, main=bquote(italic(.(a))))
plot(1,1, main=substitute(italic(x), list(x=a)))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With