r - 将 `expression()` 与 `\n` 结合

标签 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)

enter image description here

我怎样才能结合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))))

enter image description here

因此,作为进一步的技巧,您可以将其他标签作为表达式传递:
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))))

enter image description here

但当然,你有@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)")

enter image description here

关于r - 将 `expression()` 与 `\n` 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13198170/

相关文章:

r - 在 R 图的图例文本中使用子/上标和特殊字符

r - 粘贴是绘图数学表达式中的特殊参数吗?

r - 如何为重复的列值追加增量值,然后分配为行名?

sql - R 等价于 SQL UPDATE 查询

r - 如何使用GGPLOT geom_point()进行选择性标记

R ggplot 在图例项之间添加空格

r - 如何在 R 中的表达式中添加 > 符号?

r - 合并r中列表中的元素

r - "Download"按钮打开一个新的应用程序窗口而不下载 - Shiny

r - 如何一次从多面图保存/生成多个单个图?