使用表达式时在轴标签上的间距(粘贴(...))

时间:2012-05-23 08:39:27

标签: r axis-labels plotmath

考虑以下示例:

plot(c(2,4,6)~c(1,2,3),xlab="x",
ylab=expression(paste('flux (g ',CO[2]~m^{-2}~h^{-1},')')))

显然我想在“g”和“CO”之间留一个完整的空格,但由于某种原因,我在图形标签中得到一个较小的(有些标签甚至为零)空间。

问题更加明显,如果我这样做:

plot(c(2,4,6)~c(1,2,3),xlab="x",
ylab=expression(paste('flux (g C',O[2]~m^{-2}~h^{-1},')')))

我做错了吗?有没有办法修复间距甚至更好的方法来创建带有大量子/上标和希腊字母的标签?

1 个答案:

答案 0 :(得分:10)

你很可能 获得一个印刷正确的“空格”,用你的OS用于非serif显示的字体。您可以更改字体,也可以使用plotmath phantom()插入足以容纳特定字符串的空格:

 plot(c(2,4,6)~c(1,2,3),xlab="x",
     ylab=expression(paste('flux',phantom(x),'(g ',CO[2]~m^{-2}~h^{-1},')')))

或者@baptiste指出这可以在没有plomath paste的情况下使用普通的plotmath分隔符完成,因为真正的R表达式中的波浪号被处理为“空格”:

     ylab=expression(flux*phantom(x)*(g~CO[2]~m^{-2}~h^{-1})))