【问题标题】:Superscript and subscript points in ggplot2ggplot2中的上标和下标点
【发布时间】:2017-11-29 04:12:48
【问题描述】:

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

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)

【问题讨论】:

    标签: r plot ggplot2 geom-text


    【解决方案1】:

    您可以将文本转换为plotmath 表达式并在geom_text 中使用parse=TRUE。下面是一个带有内置 mtcars 数据框的示例。我已将您的IPA 值作为列添加到mtcars,然后将h 的所有实例转换为[h],并将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()
    

    【讨论】:

    • 谢谢!对于任何有类似问题的人来说,另一种选择是在绘图之前简单地将特殊字符粘贴到您的向量中。为了确保正确编码,这可能是最好的选择。谢谢你!
    • 你将如何在 geom_hline(aes(linetype = IPA)) 中进行操作?它不起作用。
    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2016-04-25
    • 2021-07-23
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多