删除 ggplot2 轴标题和标签中前导上标中的空格

Removing spaces in leading superscripts in ggplot2 axis titles and labels

也许我不正确,但在我看来,在以上标开头的表达式中有一个不需要的 space:

df <- data.frame(treatment=as.factor(c("A", "B")), value=c(1,2))

labels <- c(expression(""^14~CH[4]),
            expression(""^14~CH[4]~"+"~"SO"[4]^{2-''}))

library(ggplot2)
ggplot(df, aes(treatment, value)) +
  geom_bar(stat="identity") +
  scale_x_discrete(labels=labels)

我可以去 Photoshop 减少上标 14 和 "C" 之间的 space,但也许 plotmath 有办法吗?请注意,这不会发生在最后带有上标的第二个表达式中。

在表达式中,~ 为您提供 space 之间的术语。如果您不想在术语之间使用 space,则可以使用 *。结束上标前面没有 ~,所以没有 space.

您还可以删除大部分引号 - 这些都是不必要的,除非有特殊字符或 spaces。

所以你的表情可以变成

expression(''^14*CH[4]~+~SO[4]^'2-')