[R] How to add space between main title to leave space for legend?

Paul Johnson pauljohn32 at gmail.com
Sat May 31 21:06:50 CEST 2008


Hello, everybody:

I recently encountered an example with  in which the graph was placed
in a way that did not leave room for a legend.  Maybe you would
describe it as "legend too big", I'm not sure.  I found myself wishing
I could force in some space after the title.

Here's working example where I'd like to make room for a legend.



x <- rnorm(100)

hist(x, freq=F, main="Different Meanings of Normality")

lines(density(x))

xseq1 <- seq( min(x), max(x), length.out=100)

m1 <- mean(x)

sd1 <- sd(x)

obsNormal <- dnorm(xseq1, mean=m1, sd=sd1)

lines( xseq1, obsNormal, lty=2, col="red")

truNormal <- dnorm(xseq1)

lines(xseq1, truNormal, lty=3, col="green")

legend(0,0.4, legend=c("observed density", "normal with observed mean
& sd", "normal with 'true' mean and sd"), lty=c(1,2,3), col=c("black",
"red", "green"))


I tried fiddling around with par to change the margins, but it has the
bad effect of resizing the image and creating a blank space into which
I'm not allowed to write the legend. Know what I mean? I try

par( mar=c(1,1,3,1)) or par(mai=c(1,1,4,1))

before the hist and it makes space, but useless space.

I've been considering something desperate, such as layout().  Isn't
there a simpler way?






-- 
Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas



More information about the R-help mailing list