Rob*_*ong 4 r ggplot2 plotmath
我有一个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)
Run Code Online (Sandbox Code Playgroud)
我如何结合expression()
逃生\n
?
pla*_*pus 12
正如@otsaw在回答你之前的问题时所说的那样,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))))
Run Code Online (Sandbox Code Playgroud)
因此,作为进一步的黑客攻击,您可以将其他标签作为表达式传递:
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))))
Run Code Online (Sandbox Code Playgroud)
但是当然你有@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)")
Run Code Online (Sandbox Code Playgroud)