4

我正在尝试在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"))

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

4

1 回答 1

8

您几乎可以肯定需要在该减号周围加上引号,因为否则它会被认为是一个中缀运算符,因此需要在它之前和之后使用参数。如果这不能解决问题,请添加一个小测试用例。

转义在 plotmath 中不起作用。特别是您不能使用 "\n" 作为行尾/换行标记(如 help(plotmath) 页面中所述。

这也成功了:

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

我以前从未尝试过使用phantom前置和后置中缀运算符,但解释器似乎可以接受。Plotmath 表达式确实会被解析,并且需要符合 R 解析规则。见?Syntax。正如评论中所指出的,使用"-"作为前缀运算符phantom()也可以成功,因为减号可以用作一元减号或二元减号:

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

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

于 2012-11-29T22:45:13.013 回答