ggplot 中带上标的 Unicode Ø 符号

Unicode Ø symbol with superscript in ggplot

我想把下面的文字放在ggplot图表后面

而且我认为它应该很容易实现。不幸的是,我所有的尝试都以彻底的失败告终。 我已经在这个论坛上阅读了十几篇关于这个主题的帖子。我已经做了几十次尝试,仍然没有达到我期望的效果。 顺便说一句,我注意到对 unicode 符号的处理相当奇怪。请比较下表中的标题和副标题。

library(tidyverse)
ggplot()+
  labs(
    title = expression("\u00AE \u00A9, \u00A2, \u00BC, \u00BD, \u00BE, \u00A5, \u00D8, \u00F8"),
    subtitle = "\u00AE \u00A9, \u00A2, \u00BC, \u00BD, \u00BE, \u00A5, \u00D8, \u00F8"
  )+
  annotate(geom="text", label="\u00D828.15^{+0.15}", x=0, y=0.08,parse = TRUE, size=5)+
  annotate(geom="text", label="\u00D8", x=0, y=0, size=5)+
  annotate(geom="text", label="28.15^{+0.15}", x=0.03, y=0.001,parse = TRUE, size=5)+
  xlim(c(-0.1, 0.1))+
  ylim(c(-0.02, 0.1))+
  theme_void()

为什么一些 unicode 符号在放置在 expression 函数中或当我使用 parse 选项时会丢失一些图形?这发生在符号 ¢、¥、¼、½、¾、Ø 上。就我而言,我特别关心符号 Ø。我终于得到了轨道图上的效果(图表底部的注释)是由两个彼此相邻的注释的繁琐设置创建的。然而,一旦我改变图表的大小,它就完全崩溃了。

有人知道怎么解决吗?

非常感谢您的快速回复。不幸的是,它仍然对我不起作用! :-(

library(latex2exp)
library(ggplot2)
label <- TeX("$Ø28.15^{+0.15}$")
qplot(1, "A") +
  annotate(geom = "text", label = label, x = 1, y = 1.1, size = 10) +
  xlab(label)

您可以在数学 ($) 环境中使用 LaTeX 语法来自动生成 plotmath 表达式:

library(latex2exp)
library(ggplot2)

label <- TeX("$Ø28.15^{+0.15}$")
label
#> expression(`$Ø28.15^{+0.15}$` = paste("", "Ø28", ".", "15", 
#>     phantom()^{
#>         paste("+0", ".", "15")
#>     }, ""))

qplot(1, "A") +
  annotate(geom = "text", label = label, x = 1, y = 1.1, size = 10) +
  xlab(label)
#> Warning in is.na(x): is.na() applied to non-(list or vector) of type
#> 'expression'

reprex package (v2.0.1)

于 2021-10-18 创建

我知道如何修改上面的这个解决方案,也许不是那么可爱,但到处都有效

library(ggplot2)
label <- "\u00D828.15\U207A\u2070\U00B7\U00B9\u2075" 
 qplot(1, "A") +
     annotate(geom = "text", label = label, x = 1, y = 1.1, size = 10) +
     xlab(label)