7

我正在尝试使用几篇文章中引用的 plotmath 表达式为我的 y 轴单位获取上标。我已经查看了有关 using expressionhere的线程,但它对我不起作用。这是我到目前为止所拥有的:

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”。我错过了什么?

4

1 回答 1

8

你不需要第二个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)))

~“空格”字符在哪里。如果在单词之间放置实际空格(不使用~),则会出现错误。但是,为了可读性,您也可以这样做:

ylab(expression(eelgrass ~ shoot ~ density ~ (shoots/m^2)))

这等效于上面的代码,因为只要~存在空格,就会忽略空格。

上面的任何ylab表达式都将给出以下图:

在此处输入图像描述

于 2016-03-08T23:46:33.303 回答