[R] Options for zooming plots other than zm()

Jim Lemon drj|m|emon @end|ng |rom gm@||@com
Sun Apr 26 12:32:02 CEST 2020


Hi Robert,
Maybe you can use something simple like this:

zoomInScatterPlot<-function(x=NULL,y,...) {
 if(is.null(x)) x<-1:length(y)
 plot(x,y,...)
 xylim<-par("usr")
 boxed.labels(xylim[1]-diff(xylim[1:2])/20,
  xylim[3]-diff(xylim[3:4])/10,"Done")
 xy1<-locator(1)
 done<-FALSE
 while(!done) {
  if(xy1$x < xylim[1]) done<-TRUE
  else {
   xy2<-locator(1)
   xlim<-c(xy1$x,xy2$x)
   ylim<-c(xy1$y,xy2$y)
   plot(x,y,xlim=xlim,ylim=ylim,...)
   xylim<-par("usr")
   boxed.labels(xylim[1]-diff(xylim[1:2])/20,
    xylim[3]-diff(xylim[3:4])/10,"Done")
   xy1<-locator(1)
  }
 }
}
zoomInScatterPlot(rnorm(30),rnorm(30))

On Sat, Apr 25, 2020 at 4:40 PM Robert Dodier <robert.dodier using gmail.com> wrote:
>
> Hi,
>
> I am making some plots with plot() which have a fair number of points
> (thousands) and I would like to be able to interactively select a
> region of the plot and zoom in on it. I tried the zoom package which
> has the function zm() but I found that it was unworkably slow to
> refresh the display. I guess I can set the x and y range via xlim and
> ylim but I was hoping to do it interactively. Does someone have a
> suggestion for that?
>
> I looked at ggplot2 but I wasn't able to find something about
> interactive zooming, only noninteractive via plot limits. Perhaps I
> have overlooked something there?
>
> I have searched the mailing list archive and web pages in general but
> I haven't found anything other than zm(). Thank you in advance for
> your help, I appreciate it very much.
>
> best,
>
> Robert Dodier
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list