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