组合`表达式()`用`\\ N`组合`表达式()`用`\\ N`(Combining `[remov

2019-05-12 07:40发布

我在我已经使用了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

Answer 1:

作为@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))))

因此,作为进一步的黑客,可以通过其他标签为表达式:

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)")



Answer 2:

另一种方法是使用最近存档tikzDevice 。 这将创建该地块为tikz这是乳胶友好的格式。

这将允许您通过任何乳胶表达式作为字符串标签。

它可以编译相同的前导码的文件为您的整个文档,这样的字体等都是一致的好处。

所有这些可以使用自动化knitr使用opts_chunk$set(dev = 'tikz')



文章来源: Combining `expression()` with `\\n`