r - 如何将上标附加到变量以显示在 ggplot 轴中?

标签 r ggplot2

这与这个问题类似 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"

最佳答案

你们很亲密!不要使用 paste 使用 .(VAR)bquote 调用变量。

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

enter image description here

关于r - 如何将上标附加到变量以显示在 ggplot 轴中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46829109/

相关文章:

正则表达式获取间隔下划线之间的字符串

regex - 用缩写词替换句点(单个字母 + 句点),除非后跟大写字母

r - 使用 ggbiplot 在 R 中可视化具有大量变量的 PCA

r - 错误包网格没有命名空间

r - 在ggplot2中着色箱线图异常点?

r - 当向量的项不匹配时使用 which 和 %in%

r - 如何以类似热图的样式在 ggplot2 中的 map 顶部绘制样方计数

javascript - 使用来自 JavaScript (D3r) 的警报将​​数据传递给 R

r - 为什么两个ggplot对象通过all.equal()测试,但未通过same()测试?

r - ggplot 标签中的两个字体