RE: [R] a question about identify and locator

From: John Fox <jfox_at_mcmaster.ca>
Date: Sat 31 Jul 2004 - 00:41:50 EST


Dear Uwe and Jordi,

It is possible to get close to what Jordi wants using the tcltk package:

IDPoints <- function(x, y, labels){

    top <- tktoplevel()
    tkwm.title(top, "Coordinates")
    coords <- tclVar("")
    coordsEntry <- tkentry(top, width="25", textvariable=coords)     Stop <- tclVar("No")
    onStop <- function() {

        tclvalue(Stop) <- "Yes"
        tkdestroy(top)
        }

    stopButton <- tkbutton(top, text="Stop", fg="red", width="12", command=onStop)

    tkgrid(coordsEntry)
    tkgrid(stopButton)
    repeat {

        if (tclvalue(Stop) == "Yes") break
        if (missing(x)){
            xy <- format(locator(1), digits=10)
            tclvalue(coords) <- paste(xy, collapse=", ")
            }
        else{
            point <- identify(x, y, rep("", length(labels)), n=1)
            tclvalue(coords) <- labels[point]
            }
        }

    }

Try, e.g.,

plot(1:10)
IDPoints()
IDPoints(1:10, 1:10, letters[1:10])

There is a minor irritation that I haven't been able to remove, however: You have to identify one more point after pressing the "Stop" button.

Regards,
 John

> -----Original Message-----
> From: r-help-bounces@stat.math.ethz.ch
> [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Uwe Ligges
> Sent: Friday, July 30, 2004 9:27 AM
> To: Molins, Jordi
> Cc: 'r-help@stat.math.ethz.ch'
> Subject: Re: [R] a question about identify and locator
>
> Molins, Jordi wrote:
>
> > Hello,
> >
> > I use R 1.9.1 on Windows 2000. I have a chart that I am
> looking. I use
> > identify() and locator() to find out the (x,y) values of
> interesting
> > points in the chart, but these functions are not always
> helpful (e.g.,
> > sometimes
> > identify() prints on top of the chart, making the number
> illegible).
>
> par(xpd = NA) just before using identify() should help here.
> See ?par for details.
>
>
> > What I
> > would be interested in is in a functionality that
> identifies the (x,y) point
> > using something like a text box superimposed on the chart
> that disappears
> > when the cursor is away from the chart (for example,
> similar to Excel) or
> > even better, small text boxes located both in the x and y
> axis near to the
> > points (0,y) and (x,0), resp., that are constantly updated
> (like charts in
> > Bloomberg) .
> >
> > Is there something like this in R?
>
> Not within R itself.
>
> Uwe Ligges
>
>
> > Thank you
> >
> > Jordi



R-help@stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Jul 31 00:46:01 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:55:22 EST