在绘图数学符号中(在ggplot2图例中),减号作为指数

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中是否有减号的转义字符或其他东西?)

StackOverflow可能没有[化学符号]或[化学计量]标签,因此我尽力在标签编辑方面做得最好。[离子]已经被某个编程包占用了。 - IRTFM
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()}))

我们也可以在前缀符号后使用空字符值作为项目: {-""}。该方法与使用“0”或其他任何值的效果相同,只是更加简洁明了。

1
expr1 <- expression(paste("text", main[sub]^{-phantom()}))同样有效。 - mnel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接