[R] legend in multiple plot

Jim Lemon jim at bitwrit.com.au
Thu Jan 21 11:13:22 CET 2010


On 01/21/2010 03:53 AM, Lars Skjærven wrote:
> Dear R users,
> I'm making multiple plots within the same pdf page (par(mfcol = c(5,1)), and
> want a legend for this at the bottom of all the plots. From previous mails
> it has been suggested to use par(xpd=TRUE), increase the margin at the last
> plot, and then draw the legend. However, when I do this, the last plot gets
> smaller with the same amount I increase the margin with.
>
> The problem seems to be that legend() is drawing inside of the margins of
> the last plot. While what I want is to get this legend outside the margins.
> Or, extend the margins, without making the plot itself shrink...
>
Hi Lars,
I would try using layout for something like this:


x11(width=5,height=10)
layout(matrix(1:6,ncol=1),heights=c(rep(1,5),0.5))
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
plot(1:10)
oldmar<-par(mar=c(1,1,1,1))
plot.new()
legend(0.45,1,c("one","two","three"),pch=1:3)
par(oldmar)

Jim



More information about the R-help mailing list