ggplot2中的上标和下标点

时间:2017-11-29 04:12:48

标签: r plot ggplot2 geom-text

我想在ggplot2点图中的某些字母/字符上添加sub / superscript。我知道如何在轴上执行此操作,但在这种情况下,因为它们是特殊字符,我在绘制之前定义了一个字符向量:

IPA=(c("ph", "th", "kh", "p", "t", "k", "ts", "tsh", etc.))

我想为图中的点绘制字母组合,例如p ^ [h]和ts ^ [h],但这种语法不起作用(也不是p ^ {h}或p ^ h)。见图。

p <- ggplot(data, aes(x, y, label=IPA))
p + geom_text(size = 5) +
  theme(legend.position="none") +
  scale_shape_manual(values = IPA)

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以将文字转换为plotmath表达式,并使用parse=TRUE中的geom_text。以下是内置mtcars数据框的示例。我已将IPA值添加为mtcars的列,然后将h的所有实例转换为[h],并将{{1}的所有实例转换为ts } t^s,它们分别是plotmath中的下标和上标表达式(有关表达式的更多信息,请参阅?plotmath;在R图中还有许多与数学注释相关的Stackoverflow问题)。 parse=TRUE会导致geom_texth渲染为下标。

mtcars$IPA = gsub("h", "[h]", IPA)
mtcars$IPA = gsub("ts", "t^s", mtcars$IPA)

ggplot(mtcars, aes(mpg, wt, label=IPA)) +
  geom_text(size=5, parse=TRUE) +
  theme_classic()

enter image description here