【问题标题】:Subscripts in plots in RR中图中的下标
【发布时间】:2012-04-26 17:42:15
【问题描述】:

我找不到如何在标题或 R 中的副标题中编写下标的方法。 如何用 1,2 作为下标写 v 1,2?

感谢您的帮助!

【问题讨论】:

    标签: r plot subscript


    【解决方案1】:

    expression是你的朋友:

    plot(1,1, main=expression('title'^2))  #superscript
    plot(1,1, main=expression('title'[2])) #subscript
    

    【讨论】:

    • 如何从变量中加载“2”?我有一个循环,需要绘制 x_[1] x_[2] x_[3] ...
    • 您可以在使用下标变量时使用bquote。比如说nIter <- 2,那么plot(1, 1, main = bquote(title[.(nIter)])) 正是你所需要的(取自R-help mailing list)。
    【解决方案2】:

    见?表达式

    plot(1:10,main=expression("This is a subscript "[2]))
    

    【讨论】:

      【解决方案3】:

      如果您希望在一个文本中包含多个下标,请使用星号 (*) 分隔各个部分:

      plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'[2]))
      

      【讨论】:

      • 哇,对一个两年前的问题的两天前的回答,结果证明这正是我所需要的。谢谢!
      • 如果你希望下标是一个字符串,只要把它放在引号里:plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'['down here']*'and'^'up'*'there'))
      • 这是一个很好的提示,因为您可以将[digits][characters] 甚至[a5] 放在下标中,但不能将[5a][a a]。我最近发现了这个:expression('x'['10sdt'])
      【解决方案4】:

      下标并引用存储的值...

      a <- 10
      plot(c(0,1), c(0,1), type = 'n', ann = FALSE, xaxt = 'n', yaxt = 'n')
      text(0.2, 0.6, cex = 1.5, bquote(paste('S'['f']*' = ', .(a))))
      

      【讨论】:

        【解决方案5】:

        另一个例子,表达式适用于负上标,不需要在负数周围加上引号:

        title(xlab=expression("Nitrate Loading in kg ha"^-1*"yr"^-1))
        

        并且你只需要*来分隔上面提到的部分(当你写一个上标或下标并且需要在后面的表达式中添加更多文本时)。

        【讨论】:

        • 感谢您明确解释 * 的作用!
        【解决方案6】:

        正如其他用户所指出的,我们使用expression()。我想回答下标中包含逗号的原始问题:

        如何用 1,2 作为下标写 v 1,2?

        plot(1:10, 11:20 , main=expression(v["1,2"]))
        

        另外,我想为那些希望在R 绘图中找到完整的expression 语法的人添加参考:有关更多信息,请参阅?plotmath 帮助页面。运行demo(plotmath) 将展示许多表达式和相关语法。

        记得使用* 在表达式中连接不同类型的文本。

        这是demo(plotmath) 的一些示例输出:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-05-01
          • 2014-10-21
          • 1970-01-01
          • 2018-08-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多