Interactive plot functions

Share:

Description

Recovering information from existing lattice plots.

Usage

1
2
3
4
5
6
7
8
9
getXY(n = -1, ..., unit = "native", scale.correction = NULL)

getLatLon(..., map = NULL, object = trellis.last.object(),  
          scale.correction = function(x) {
                                temp <- XY2LatLon(map, x$x, x$y)
                                as.list(as.data.frame(temp))
                            })

screenLatticePlot(object = trellis.last.object(), ...)

Arguments

n

If positive, the maximum number of points to locate. If negative (default), unlimited.

unit

The unit to use when reporting located points, by default "native".

scale.correction

The correction to apply if the plot has locally scaled axes. See Note below.

map, object

For getLatLon only. The plot layer as generated makeMapArg and the plot object genereated by GoogleMap. The map is strictly required as a reference when converting plot points to associated latitude, longitude values, and can be supplied directly as map, or recovered from the plot, which can be supplied as object. If neither are supplied (as in default use), the function attempts to recover map from the last lattice plot via trellis.last.object.

...

Additional arguments, passed on to related functions.

These may be subject to revision, but are currently: trellis.focus for panel selection (if working with multi-panel plots) and lpoints to set point properties (if marking selected points). For getLatLon, additional arguments are also passed to XY2LatLon for x, y to latitude, longitude rescaling.

Details

getXY is an interactive function which returns the locations of points on a plot selected using the mouse (left click to select points; right click and stop to end point collection; escape to abort without returning any values).

It is a wrapper for the grid function grid.locator that behaves more like locator, the equivalent function intended for use with plot outputs.

By default getXY selections are not automatically marked. Adding common plot parameters to the function call overrides this behaviour, e.g. to add red symbols and lines.

ans <- getXY(col = "red", pch = 4, type = "b")

getXY also provides a mechanism to handle data plotted on locally scaled axes. See Note below.

getLatLon is wrapper for getXY for use with GoogleMap outputs and other similarly georeferenced plots. See Note below.

screenLatticePlot is a crude plot screening function. It is currently in development.

Value

getXY returns the x and y coordinates of the selected points on a plot as a list containing two components, x and y.

getLatLon returns the latitude and longitude values of the selected points on a map as a list containing two components, lat and lon.

Note

getXY recovers the (x, y) coordinates of points selected on a previously generated plot.

Some plots, use local scaling. For example, when plotting latitude, longitude data on a map a scale correction may be used to account for the curvature of the Earth. Similarly, if different data series are plotted on primary and secondary axes in a single plot, some or all data may be normalised. In such cases scaling may be local, i.e. what you actually plot may not be exactly what the annotation says it is.

Using getXY on such plots would recover the actual (x, y) coordinates of the points selected.

However, corrections can be applied using scale.correction, if it is supplied, to convert these to the same scale as the axes annotation. The correction should be a function that can be applied directly to a standard getXY output (a list of x and y values) and rescale x and y to give their 'corrected' values.

getLatLon provides an example of the mechanism, and is for use with georeferenced plots that have been locally scaled using RgoogleMaps functions like LatLon2XY. getLatLon uses XY2LatLon to rescale x and y values and then as... functions to convert the outputs of this step to a list format like that generated by locator, grid.locator or getXY.

Author(s)

Karl Ropkins

References

This function makes extensive use of code developed by others.

lattice: Sarkar, Deepayan (2008) Lattice: Multivariate Data Visualization with R. Springer, New York. ISBN 978-0-387-75968-5

RgoogleMaps: Markus Loecher and Sense Networks (2011). RgoogleMaps: Overlays on Google map tiles in R. R package version 1.1.9.6. http://CRAN.R-project.org/package=RgoogleMaps

See Also

In other packages: See grid.locator; trellis.focus and lpoints in lattice. See LatLon2XY in RgoogleMap.