使用 plotmath 在 ggplot2 中上标
Superscripting in ggplot2 using plotmath
我正在尝试使用几篇文章中引用的 plotmath 表达式获取 y 轴单位的上标。我查看了有关使用 expression and also here 的线程,但它对我不起作用。这是我目前所拥有的:
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”作为上标。我错过了什么?
你不需要第二个 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)))
其中 ~
是 "space" 字符。如果你在单词之间放置实际的空格(不使用 ~
),你会得到一个错误。但是,为了便于阅读,您也可以这样做:
ylab(expression(eelgrass ~ shoot ~ density ~ (shoots/m^2)))
等同于上面的代码,因为只要 ~
存在,空格就会被忽略。
上面的任何 ylab
表达式都会给出以下情节:
我正在尝试使用几篇文章中引用的 plotmath 表达式获取 y 轴单位的上标。我查看了有关使用 expression and also here 的线程,但它对我不起作用。这是我目前所拥有的:
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”作为上标。我错过了什么?
你不需要第二个 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)))
其中 ~
是 "space" 字符。如果你在单词之间放置实际的空格(不使用 ~
),你会得到一个错误。但是,为了便于阅读,您也可以这样做:
ylab(expression(eelgrass ~ shoot ~ density ~ (shoots/m^2)))
等同于上面的代码,因为只要 ~
存在,空格就会被忽略。
上面的任何 ylab
表达式都会给出以下情节: