【问题标题】:Superscripting in ggplot2 using plotmath使用 plotmath 在 ggplot2 中添加上标
【发布时间】:2016-06-23 03:31:18
【问题描述】:

我正在尝试使用几篇文章中引用的 plotmath 表达式为我的 y 轴单位获取上标。我查看了使用expressionhere 的线程,但它对我不起作用。这是我目前所拥有的:

ggplot(data.frame, aes(Region, Zmar_sh)) + 
  geom_boxplot() + xlab("Region") +  
  ylab(expression(paste("eelgrass shoot density", " (shoots/", expression(m[2])))) +
  ggtitle(expression(paste(italic("Zostera marina")," shoot density in X Bay", sep = " ")))

ggtitle 表达式有效,但我仍然没有让我的 y 轴读取“eelgrass shoot density (shoots/m2)”,上标为“2”。我错过了什么?

【问题讨论】:

    标签: r ggplot2 axis-labels superscript plotmath


    【解决方案1】:

    您不需要第二个expression()。此外,m[2] 给出了一个下标。使用m^2 作为上标。

    这是一个带有内置 mtcars 数据框的示例:

    ggplot(mtcars, aes(wt, mpg)) +
      geom_point() +
      ylab(expression(paste("eelgrass shoot density", " (shoots/", m^2,")")))
    

    事实上,你甚至不需要使用paste。相反,您可以这样做:

    ylab(expression(eelgrass~shoot~density~(shoots/m^2)))
    

    其中~ 是“空格”字符。如果在单词之间放置实际空格(不使用~),则会出现错误。但是,为了便于阅读,您也可以这样做:

    ylab(expression(eelgrass ~ shoot ~ density ~ (shoots/m^2)))
    

    相当于上面的代码,因为只要有~,空格就会被忽略。

    上面的任何ylab 表达式都会给出以下图:

    【讨论】:

    • 谢谢!我不知道 ~ 的这种用法。我知道我错过了一些小东西。当然,你对上标的看法是对的。我还在我的代码中使用下标,并在我急于发布时写了不正确的术语。
    猜你喜欢
    • 2013-08-09
    • 2022-07-31
    • 2013-06-04
    • 2023-01-11
    • 2018-11-23
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多