我有一个 ggplot,我用过 expression(phantom(x) >=80)
在标签文本中获得适当的大于或等于符号。
但是我还需要 (N=...) 立即在下面:
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)
我怎样才能结合
expression()
与逃生\n
?
最佳答案
正如@otsaw 在他的 answer to your earlier question 中所说的那样, plotmath
(因此 expression
)不允许换行。
但是,作为黑客,您可以使用 atop
出租 ≥80
出现在 (N=10)
的顶部.但是您很快就会看到它与其他标签不匹配:
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))))
因此,作为进一步的技巧,您可以将其他标签作为表达式传递:
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))))
但当然,你有@otsaw 解决方案(使用 Unicode),它相当不冗长:
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)")
关于r - 将 `expression()` 与 `\n` 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13198170/