我正在尝试使用 mtext 在我的垂直轴上获得一个标签,该标签是水平读取的( las=1 )并且位于轴的顶部。

我的尝试是使用 las=1, adj=1 。当我不指定 las=1 时,我可以获得所需的位置,但是一旦我添加 las=1 参数,adj=1 位置就会消失。这是带有代码的图片。左图显示了正确的位置,但没有 las=1 。右图显示了存在的两个参数。

par(mfrow=c(1,2), mar=c(2,3,2,1))

plot(1, 1, ann=F)
mtext(col="blue", "y", side=2, line=2, adj=1)
mtext(side=3, "col=blue, side=2, adj=1")

plot(1, 1, ann=F)
mtext(col="red", "y", side=2, line=2, adj=1, las=1)
mtext(side=3, "col=red, side=2, adj=1, las=1")

我试过用 padj 大惊小怪,但这只会使标签上下移动一点。另外,我知道 at 参数可以,但这感觉有点太手动了。

最佳答案

诀窍是通过调用 par('usr')[4] 来访问绘图的高度:

par(mar=c(2,3,2,1))
plot(1, 1, ann=F)
mtext(col="blue", "y", side=2, line=2, at=par('usr')[4], las=2)

R 绘图 : How to use mtext to get top-aligned vertical label with las=1-LMLPHP

10-08 12:17