[ top | up ]

Identify Points in a Scatter Plot

Syntax

identify(x, y, labels=seq(along=x), n=length(x),
        plot=TRUE, offset=0.5, labpos=FALSE)

Arguments

x,y coodinates of points in a scatter plot. Alternatively, any object which can defines coordinates (a plotting structure, time series etc.) can be given as x and y left undefined.
labels an optional vector, the same length as x and y, giving labels for the points.
n the maximum number of points to be identified.
plot if plot is TRUE, the labels are printed at the points and if FALSE they are omitted.
offset the distance (in character widths) which separates the label from identified points.
labpos if labpos is TRUE, a component is added to the return value which indicates where text was plotted relative to each identified point (1=below, 2=left, 3=above and 4=right).

Description

This function reads the position of the graphics pointer when the (first) mouse button is pressed. It then searches the coordinates given in x and y for the point closest to the pointer. If this point is close to the pointer, its index will be returned as part of the value of the call. If in addition, plot is TRUE the point is labelled with the corresponding element of text.

The labels are placed either below, to the left, above or to the right of the identified point, depending on where the cursor was.

The identification process is terminated by pressing any mouse button other than the first, or by clicking outside the graphics window.

Value

If labpos is FALSE, identify returns an integer vector containing the indexes of the identified points. If labpos is TRUE, identify returns a list containing a component ind, indicating which points were an identified and a component labpos, indicating where the labels were placed relative to the identified points.