小编典典

在基本图形的绘图区域之外绘制图例?

all

正如标题所说: 使用基本图形时,如何在绘图区域之外绘制图例?

我想过摆弄layout并制作一个只包含图例的空图,但我会对仅使用基本图形工具的方式感兴趣,例如,par(mar = )在图例的右侧获得一些空间。


这里有一个例子:

plot(1:3, rnorm(3), pch = 1, lty = 1, type = "o", ylim=c(-2,2))
lines(1:3, rnorm(3), pch = 2, lty = 2, type="o")
legend(1,-1,c("group A", "group B"), pch = c(1,2), lty = c(1,2))

产生:

替代文字

但如前所述,我希望图例位于绘图区域之外(例如,在图形/绘图的右侧。


阅读 71

收藏
2022-06-24

共1个答案

小编典典

也许您需要的是par(xpd=TRUE)使事物能够在绘图区域之外绘制。因此,如果您使用主要情节进行处理bty='L',则右侧将有一些空间用于图例。通常这会被剪裁到绘图区域,但是par(xpd=TRUE)通过一些调整,您可以获得尽可能远的图例:

 set.seed(1) # just to get the same random numbers
 par(xpd=FALSE) # this is usually the default

 plot(1:3, rnorm(3), pch = 1, lty = 1, type = "o", ylim=c(-2,2), bty='L')
 # this legend gets clipped:
 legend(2.8,0,c("group A", "group B"), pch = c(1,2), lty = c(1,2))

 # so turn off clipping:
 par(xpd=TRUE)
 legend(2.8,-1,c("group A", "group B"), pch = c(1,2), lty = c(1,2))
2022-06-24