[R] Image display in R
tom wright
tom at maladmin.com
Fri Nov 18 11:44:51 CET 2005
This peice of very useful getcell() function was posted for me on this
list by Duncan Murdoch (Thanks again Duncan). It allows the
identification of a particular plot in a matrix of plots. All you need
to do then is use this information to identify the original plot which
you can then re-plot.
###### Start Function ######
getcell <- function(pts = locator()) {
usr <- par("usr")
plt <- par("plt")
mfg <- par("mfg")
x <- pts$x
y <- pts$y
# convert to 0-1 plot coordinates
px <- (x-usr[1])/(usr[2]-usr[1])
py <- (y-usr[3])/(usr[4]-usr[3])
# convert to 0-1 frame coordinates
fx <- plt[1] + px*(plt[2]-plt[1])
fy <- plt[3] + py*(plt[4]-plt[3])
# convert to a relative cell position
cx <- floor(fx)
cy <- floor(fy)
# return the absolute cell position
list(row = -cy+mfg[1],col = cx+mfg[2])
}
####### End Function #######
#For example
Dset1<-1:10
Dset2<-rnorm(10)
oldpar<-par(mfrow=c(2,1))
plot(Dset1)
plot(Dset2)
cell<-getcell(locator(1))
if((cell$row*cell$col)<2){
par(mfrow=c(1,1))
plot(Dset1)
} else {
par(mfrow=c(1,1))
plot(Dset2)
}
I hope this gives you something to work with.
Tom
On Fri, 2005-18-11 at 09:46 -0500, Vasundhara Akkineni wrote:
> Hi all,
> I am trying to display a matrix of plots(images), for example a 3*3 matrix
> of 9 image plots, such that when a user clicks on a image i can show the
> enlarged plot. I tried the multiple graphic device(using mfcol=c(3,3) and
> mfg), but it creates multiple plots in a single image file. So, i won't be
> able to highlight a particular plot when the user clicks on it.
> To be more clear, can i display images in the form of a matrix in R. Are
> there any grids available? Please let me know.
> Thanks,
> Vasu.
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
More information about the R-help
mailing list