I have a ggplot where I have used expression(phantom(x) >=80)
in the label text to get a proper greater-than-or-equal symbol.
However I also need to have (N=...) immediately underneath:
require(ggplot2)
.d <- data.frame(a = letters[1:6], y = 1:6)
labs <- c("0-9\n(N=10)","10-29\n(N=10)","30-49\n(N=10)", +
"50-64\n(N=10)","65-79\n(N=10)", expression(phantom(x) >=80))
ggplot(.d, aes(x=a,y=y)) + geom_point() +
scale_x_discrete(labels = labs)
How can I combine the expression()
with the escape \n
?
As @otsaw said in his answer to your earlier question, plotmath
(and therefore expression
) doesn't allow linebreaks.
However, as a hack, you can use atop
to let ≥80
appears on top of (N=10)
. But as you will soon see it doesn't match with the other labels:
labs <- c("0-9\n(N=10)","10-29\n(N=10)","30-49\n(N=10)",
"50-64\n(N=10)","65-79\n(N=10)",
expression(atop(phantom(x) >=80, (N==10))))
So, as a further hack, you can pass the other labels as expressions:
labs <- c(expression(atop(0-9,(N==10))),expression(atop(10-29,(N==10))),
expression(atop(30-49,(N==10))), expression(atop(50-64,(N==10))),
expression(atop(65-79,(N==10))), expression(atop(phantom(x) >=80, (N==10))))
But of course you have @otsaw solution (using Unicode) that is considerably less wordy:
labs <- c("0-9\n(N=10)","10-29\n(N=10)","30-49\n(N=10)",
"50-64\n(N=10)","65-79\n(N=10)",
"\u2265 80\n(N=10)")
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