Man*_*auf 5 plot r axis-labels
这可能很容易解决,但我没有用谷歌找到任何东西,也许是因为很难用语言表达。运行以下代码时
Dat<-matrix(c(1:10, 1:10, seq(0.1, 1, 0.1)), 10, 3)
par(mfrow=c(1, 2))
plot(Dat[,1], Dat[,2], ylab="Y", xlab=expression(paste("A unit (", m^2, ")", sep="")))
plot(Dat[,1], Dat[,3], ylab="Y", xlab="A unit")
Run Code Online (Sandbox Code Playgroud)
我得到了一个很好的图,但 x 轴标签不在同一基线上。原因是左图的标签有一个到达文本基线以下的括号,而 R 正在绘制标签,以便expression()在 xlab-command 中使用时将文本字符串的最低点作为基线。因此,右侧图中的“A 单位”比左侧图中打印得更靠下(参见示例图像,由红线表示)。如果某些标签的括号或字母的部分低于基线(如“g”、“q”等)而其他标签没有,那就很烦人了。有没有办法解决这个问题?
我可能是错的,但我认为这不会发生在普通文本中,例如,我没有看到它带有纯字符向量“qqq”和“ooo”的标签,它们似乎在它们的基线处正确对齐。我还怀疑 plotmath 表达式的对齐问题在某种程度上取决于设备。
Plotmath 没有 (La)Tex 的复杂性,因此与边界框而不是基线对齐是一个“特征”。当然,您可以通过调整par设置或使用 来手动微调位置mtext。但是,在很多情况下,例如这种情况,您可以通过设置幻像字符进行匹配来实现对齐。例如,在您的示例中将第二个图更改为以下内容会产生令人满意的结果:
plot(Dat[,1], Dat[,3], ylab="Y",
xlab=expression(paste(phantom('('),"A unit",phantom(')'))))
Run Code Online (Sandbox Code Playgroud)