[R] locator() in a multi-figure setting using mfrow()

Christoph Lehmann christoph.lehmann at gmx.ch
Mon Sep 6 10:52:56 CEST 2004


based on some code from Thomas Petzoldt (see below), I have a question, 
about how to use locator() in a mfrow() multi-figure setting. I am sure 
this should be a kind of problem, which other people face too?

we have 8 matrices each 10x10 fields, plotted as mfrow = c(2,4).

how can I get, using locator(), the correct index of a field of one of 
the 8 matrices? means, I should get 3 values: the matrix I am in (a 
value between 1..8), and the corresponding x and y coordinates (each in 

many, thanks for your kind help.

opar <- par(mfrow = c(2,4))
slices <- 8
m <- matrix(runif(100),10,10)
my.list <- list()
for (slice in 1:slices) {
     my.list[[slice]] <- m

for  (slice in 1:slices) {
     x <- 1*(1:25)
     y <- 1*(1:25)
     z <- my.list[[slice]]
     image(list(x = 0:9, y = 0:9, z = z))
par(opar) #restore device parameters

p <- locator(1)
c(round(p$x), round(p$y))

how can I get the "correct" location in the sense of a
3d info: (a) which slice (p$slice) (b) p$x (c) p$y

so that it could be used in the sense of:

	my.list[[p$slice]][round(p$x), round(p$y)]


More information about the R-help mailing list