R 获取plot()边界框值

R 获取plot()边界框值,r,R,我正在生成许多带有xlim和ylim值的绘图,这些值是我在每个绘图的基础上计算的。我想把我的图例放在绘图区域之外(就在实际绘图框的上方),但我不知道如何获得绘图区域框的最大y值 有没有办法做到这一点?通过手动更改legend()x和y值,我可以将图例移动到需要的位置,但这需要很长时间才能创建大量的图形 谢谢 -JMpar()的oma、omd和omi参数控制绘图的边界和边距-可以使用par()$omd(等)查询它们。并使用par(oma=c())(如果需要)进行设置(其中向量最多可以有4个值-请参

我正在生成许多带有
xlim
ylim
值的绘图,这些值是我在每个绘图的基础上计算的。我想把我的图例放在绘图区域之外(就在实际绘图框的上方),但我不知道如何获得绘图区域框的最大y值

有没有办法做到这一点?通过手动更改
legend()
x和y值,我可以将图例移动到需要的位置,但这需要很长时间才能创建大量的图形

谢谢


-JM

par()的oma、omd和omi参数控制绘图的边界和边距-可以使用
par()$omd
(等)查询它们。并使用
par(oma=c())
(如果需要)进行设置(其中向量最多可以有4个值-请参见?par)

以下是一个基本示例,说明了我认为您正在使用
?legend
中的一个代码示例寻找的内容

#Construct some data and start the plot
x <- 0:64/64
y <- sin(3*pi*x)
plot(x, y, type="l", col="blue")
points(x, y, pch=21, bg="white")

#Grab the plotting region dimensions
rng <- par("usr")

#Call your legend with plot = FALSE to get its dimensions
lg <- legend(rng[1],rng[2], "sin(c x)", pch=21, 
            pt.bg="white", lty=1, col = "blue",plot = FALSE)

#Once you have the dimensions in lg, use them to adjust
# the legend position
#Note the use of xpd = NA to allow plotting outside plotting region             
legend(rng[1],rng[4] + lg$rect$h, "sin(c x)", pch=21, 
            pt.bg="white", lty=1, col = "blue",plot = TRUE, xpd = NA)
#构造一些数据并开始绘图
x命令
par('usr')
将返回边界框的坐标,但您也可以使用
grconvertX
grconvertY
函数。一个简单的例子:

plot(1:10)
par(xpd=NA)
legend(par('usr')[1], par('usr')[4], yjust=0, legend='anything', pch=1)
legend( grconvertX(1, from='npc'), grconvertY(1, from='npc'), yjust=0,
 xjust=1, legend='something', lty=1)

尝试查看
?par
usr
参数。是否使用
ggplot
进行绘图?如果您向我们展示一些示例代码和图形,可能有助于理解您想要的内容。
par(“omd”)
将是检索命名参数的更标准的方法。谢谢!这正是我需要的!