【问题标题】:Axis label specifications in ggplotggplot中的轴标签规范
【发布时间】:2020-05-19 18:59:02
【问题描述】:

我正在尝试在 ggplot 中创建一个包含上标的两行 y 轴标签,但我正在苦苦挣扎。

我希望 y 轴标签显示“[3H]ASEM 结合 (pmol/g)”,其中 3 上标和 (pmol/g) 在单独的行上。

这是我迄今为止尝试过的:

labs(x="", y=expression(paste("[" ^3 "H] ASEM Binding \n (pmol/g)"))) 

它给了我错误“意外的字符串常量”

有什么建议吗?

【问题讨论】:

    标签: r ggplot2 axis-labels


    【解决方案1】:

    在 ^3 之前需要一个空的 ''(2 个单引号)。

      ggplot(sample_data, aes(x, y)) +
      geom_point() +
      labs(
        x = "",
        y = expression(atop(paste("[", ''^3, "H] ASEM Binding"), "(pmol/g)"))
      )
    

    另一种选择是:

    y = expression(atop("["^3*"H] ASEM Binding", "(pmol/g)"))
    

    【讨论】:

      【解决方案2】:

      我不太确定你在用你的 for 循环做什么,但是这个代码块应该为你提供你正在寻找的带有上标的两行轴标签。

      library(tidyverse)
      
      sample_data <- tibble(x = rnorm(1000),
             y = x^2)
      
      sample_data %>%
        ggplot(aes(x, y)) +
        geom_point() +
        labs(
          x = "X",
          y = expression(atop("Variable", X^2))
        )
      

      【讨论】:

      • 不幸的是,这不是我需要的。我调整了上面的问题,希望能更清楚一点。我需要超级脚本出现在标签第一行的第一个 [ 和 H 之前。
      【解决方案3】:

      这就是你所追求的吗?

      library(ggplot2)
      
      ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
        geom_point()+
        labs(x = "",
             y = expression(atop("[ "^3*H~"] ASEM Binding", "(pmol/g)")))+
        theme(plot.margin = unit(c(10, 10, 20, 10), "mm"))
      

      reprex package (v0.3.0) 于 2020-05-19 创建

      【讨论】:

        猜你喜欢
        • 2012-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-24
        • 2014-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多