考虑以下示例:
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},')')))
我做错了吗?有没有办法修复间距甚至更好的方法来创建带有大量子/上标和希腊字母的标签?
答案 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})))