【问题标题】:How to append superscript to variable to display in ggplot axis?如何将上标附加到变量以在 ggplot 轴中显示?
【发布时间】:2017-10-19 11:43:57
【问题描述】:

这与How to use superscript with ggplot2的问题类似

但我在变量中有一个字符串,而不是标签的硬编码值,我需要将“mm^3”附加到字符串并在ggplot中显示。

我有这样的代码:

genericPlot <- genericPlot + labs(y = wrap(ylab, wrap.length))

#' Wrap
#' 
#' @param x character, values to be wrapped
#' @param width numeric, max number of characters
#' 
#' @return Wrapped x
wrap <- function(x, width) {
  sapply(
    X = x, 
    FUN = function(x) paste(strwrap(x, width = width), collapse = "\n"))
}

我试过用这个:

paste(ylab, bquote(~mm^3))

但这给了我带有 2 个元素的向量:

[1] "foo ~"    "foo mm^3"

【问题讨论】:

  • 你能举一个可重现的小例子来演示这个附加吗?
  • 我第二个@RomanLuštrik 评论(并品脱到help('plotmath') 或/和tidyverse's Plotmath page on github)。

标签: r ggplot2


【解决方案1】:

你很亲密!而不是使用paste 使用.(VAR)bquote 调用您的变量。

library(ggplot2)
ylab <- "foo"
myX  <- "bar" 
ggplot() + 
    ylab(bquote(.(ylab) *" ~ "* mm^3)) +
    xlab(bquote(.(myX) *" ~ "* kg^2))

【讨论】:

  • 你知道如何让它与 wrap 一起使用吗?如果我在 bquote 之前调用 wrap 我得到 mm^3 与顶部和大空间对齐,如果我在 bquote 之后换行我有 * 作为标签或类似的东西。
【解决方案2】:

我无法在短时间内了解您的情况,但我曾使用以下代码生成以下输出

scale_y_continuous(trans="log10", breaks=ybreaks, name= expression(Discharge~~ or ~~ flow ~~ group("[",m^3/s, "]")))

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多