Hi


Dr Carbon wrote:
How do I draw a rectangle across multiple plots on a device?

E.g.,

def.par <- par(no.readonly = TRUE)
par(mfrow = c(3, 1))
plot(1:10, rnorm(10), ylim = c(-4,4), type = "l")
plot(1:10, rnorm(10), ylim = c(-4,4), type = "l")
plot(1:10, rnorm(10), ylim = c(-4,4), type = "l")
rect(2, -4, 3, 4)
par(def.par)

I want the rectangle to extend across the whole device. How do I get
at those coordinates? Is this a case where I should be using grid or
gridBase?


You could use grid and gridBase (and grid.moveto() and grid.line.to)), but if your real example is as straightforward as this toy one, then you can "fake it" by drawing overlapping lines deliberately beyond the extent of each plot to create what looks like a rectangle across the three plots --- par(xpd=NA) means that the lines are not clipped to each plot region ...

par(mfrow = c(3, 1))
par(xpd=NA)
plot(1:10, rnorm(10), ylim = c(-4,4), type = "l")
# "top" of rectangle
lines(c(2, 2, 3, 3), c(-10, 4, 4, -10))
plot(1:10, rnorm(10), ylim = c(-4,4), type = "l")
# "sides" of rectangle
lines(c(2, 2), c(-10, 10))
lines(c(3, 3), c(-10, 10))
plot(1:10, rnorm(10), ylim = c(-4,4), type = "l")
# "bottom" of rectangle
lines(c(2, 2, 3, 3), c(10, -4, -4, 10))

HTH

Paul
--
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
[EMAIL PROTECTED]
http://www.stat.auckland.ac.nz/~paul/

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to