Drew Steen Drew Steen - 24 days ago 15
R Question

How to annotate() ggplot with latex

I'd like to add latex text to a ggplot2 plot using

annotate()
. Using
expression()
, as described here for adding latex to axis labels, does not seem to work. To wit:

# Use expression() to create subscripted text
p <- ggplot(mpg, aes(x=cty, y=hwy)) + geom_point() +
scale_x_continuous(expression(text[subscript]))

# But expression() in annotate adds nothing to the plot
p + annotate("text", x=10, y=40, label=expression(text[subscript]))

# Passing regular text to annotate works fine
p + annotate("text", x=10, y=40, label="foo")


Why are
expression
s treated differently by
annotate
than by other ggplot functions? And how can I annotate with latex?

Answer

You can use the parse argument, without expression:

p + annotate("text", x=10, y=40, label="text[subscript]", parse=TRUE)
Comments