我有一个情节,我需要添加一个注释,然后在该带注释的文本上附加一个上标。像这样。
p <- p + ggplot2::annotate('text', x, y, label=paste0(label,paste0("^", i)), parse=TRUE)
我迭代一些i,然后希望标签(i)与i上标。问题是我然后得到以下错误:
Error in parse(text = as.character(lab)) : <text>:1:7: unexpected symbol
1: Super. Computer
^
为什么char输入Super. Computer
不适合解析?我可以转义文本并只留下附加的上标用于解析吗?像\text{Super. Computer}^1
是否还有其他方法可以将上标附加到带注释的文本中?
更新以下答案并非最佳,请参阅此计数器示例中的两个问题:
library(ggplot2)
library(latex2exp)
p <- ggplot(data=mtcars, aes(x=cyl, y=mpg))+ geom_point()
i <- 1
label <- "Super. Computer\n of tomorrow"
p <- p + ggplot2::annotate('text', x=6, y=30,
label=TeX(paste0(label,paste0("^", i)), output="character"),
fontface='bold',parse=TRUE)
print(p)
问题:
答案 0 :(得分:2)
基于latex2exp
的解决方案:
library(ggplot2)
library(latex2exp)
p <- ggplot(data=mtcars, aes(x=cyl, y=mpg))+ geom_point()
i <- 10
label <- paste0('\\textbf{$\\overset{Super.\\,\\,\\, Computer}{of\\, Tomorrow$^{',i,'}}}')
p <- p + ggplot2::annotate('text', x=6, y=30,
label=TeX(label, output="character"), parse=TRUE)
print(p)