R 图:如何使用 mtext 获取 las=1 的顶部对齐垂直标签

BMS*_*BMS 5 plot r

我试图在垂直轴上使用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")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我尝试过使用 padj,但这只会使标签上下移动一点。另外,我知道这个at论点可以,但这感觉有点太手动了。

MrF*_*ick 0

这是使用 的可能性text()。基本上我们正在设置 x 和 y 位置,但我们这样做的方式会在您更改范围等时适应绘图。因此,您不必为不同的绘图更改太多代码(仅当您更改边距间距时)

par(mar=c(2,3,2,1))
plot(1, 1, ann=F)
mtext(side=3, "convertX/Y")
xx<-grconvertX(grconvertX(0, "nfc","inches") , "inches","user")
yy<-grconvertY(par("din")[2]-par("cin")[2]*5/2, "inches","user")
text(xx,yy,"y", col="green", cex=1.5, xpd=NA, pos=4)
Run Code Online (Sandbox Code Playgroud)

对于 x,我们一直走到图形区域的左侧,对于 y,我们从顶部向下穿过两行。然后我们绘制“y”值,使其在该点左对齐。

在此输入图像描述