legend
坐标可以分配给一个对象。然后可以使用这些坐标来放置您的第二个图例。例如,
x <-10:1
y <-11:20
plot(x,y,type="h")
my.legend.size <- legend("topright",c("Series1","Series2","Series3"))
> my.legend.size
$rect
$rect$w
[1] 1.599609
$rect$h
[1] 1.506977
$rect$left
[1] 8.760391
$rect$top
[1] 20.36
$text
$text$x
[1] 9.266641 9.266641 9.266641
$text$y
[1] 19.98326 19.60651 19.22977
使用 $rect$left、$rect$top 和 $rect$h,您可以为第二个图例提供新坐标。
#second legend
legend(x=my.legend.size$rect$left,y=my.legend.size$rect$top-
my.legend.size$rect$h,c("Series4","Series5","Series6"))
我注意到你的第二个图例的宽度比第一个大。这里的技巧是获取第二个图例的坐标,但不使用,plot = FALSE
第二个图例的 x 坐标来打印它my.legend.size2$rect$left
。
x <-10:1
y <-11:20
plot(x,y,type="h")
my.legend.size <-legend("topright",c("Series1","Series2","Series3"))
my.legend.size2 <-legend("right",c("Long series name","Series5","Series6"),plot = FALSE)
legend(x=my.legend.size2$rect$left,y=my.legend.size$rect$top-
my.legend.size$rect$h,c("Long series name","Series5","Series6"))
PS:我在图例周围留下了方框以表明放置是完美的,但您可以使用删除它们bty = "n"