减去plotmath中的指数(在ggplot2图例中)

Dre*_*een 4 r ggplot2 plotmath

我试图在ggplot2包含减号作为指数的情节中创建一个图例(指数中没有其他字符).但是,我无法弄清楚plotmath语法.

看起来以下情况可行:

expr1 <- expression(paste("text", main[sub]^{-}))

ggplot(mpg, aes(x=cty, y=hwy, colour=drv)) + geom_point() +
  scale_colour_discrete(labels=c(expr1, "b", "c"))
Run Code Online (Sandbox Code Playgroud)

(如果我们说的话,它确实有用expr1 <- expression(paste("text", main[sub]^{super})).是否有逃避字符或减号的东西plotmath

42-*_*42- 8

你几乎肯定需要在该减号周围加上引号,因为否则它将被假设为中缀运算符,因此需要在它之前和之后的参数.如果不能解决问题,请添加一个小测试用例.

逃避在plotmath中不起作用.特别是,您不能使用"\n"作为行尾/换行符标记(如帮助(plotmath)页面中所述).

这也成功了:

expr1 <- expression(paste("text", main[sub]^{phantom()-phantom()}))
Run Code Online (Sandbox Code Playgroud)

我之前从未尝试使用phantom前缀和后续的中缀运算符,但是解释器似乎可以接受.Plotmath表达式会被解析并需要符合R解析规则.见?Syntax.如注释中所述,使用"-"单个前缀运算符phantom()也会成功,因为减号可以用作一元减号或二进制减号:

expr1 <- expression(paste("text", main[sub]^{-phantom()}))
Run Code Online (Sandbox Code Playgroud)

我们也可以使用空字符值作为前缀减去后的项目:{ - ""}