Create List of Plotting Layers

Share:

Description

Given several objects which are capable of being plotted, create a list containing these objects as if they were successive layers of a plot. The list can then be plotted in different ways.

Usage

1
layered(..., plotargs = NULL, LayerList=NULL)

Arguments

...

Objects which can be plotted by plot.

plotargs

Default values of the plotting arguments for each of the objects. A list of lists of arguments of the form name=value.

LayerList

A list of objects. Incompatible with ....

Details

Layering is a simple mechanism for controlling a high-level plot that is composed of several successive plots, for example, a background and a foreground plot. The layering mechanism makes it easier to issue the plot command, to switch on or off the plotting of each individual layer, to control the plotting arguments that are passed to each layer, and to zoom in.

Each individual layer in the plot should be saved as an object that can be plotted using plot. It will typically belong to some class, which has a method for the generic function plot.

The command layered simply saves the objects ... as a list of class "layered". This list can then be plotted by the method plot.layered. Thus, you only need to type a single plot command to produce the multi-layered plot. Individual layers of the plot can be switched on or off, or manipulated, using arguments to plot.layered.

The argument plotargs contains default values of the plotting arguments for each layer. It should be a list, with one entry for each object in .... Each entry of plotargs should be a list of arguments in the form name=value, which are recognised by the plot method for the relevant layer.

The plotargs can also include an argument named .plot specifying (the name of) a function to perform the plotting instead of the generic plot.

The length of plotargs should either be equal to the number of layers, or equal to 1. In the latter case it will be replicated to the appropriate length.

Value

A list, belonging to the class "layered". There are methods for plot, "[", "shift", "affine", "rotate" and "rescale".

Author(s)

\adrian

and \rolf

See Also

plot.layered, methods.layered, as.layered, [.layered, layerplotargs.

Examples

1
2
3
4
5
6
7
8
9
   D <- distmap(cells)
   L <- layered(D, cells)
   L
   L <- layered(D, cells,
    plotargs=list(list(ribbon=FALSE), list(pch=16)))
   plot(L)

   layerplotargs(L)[[1]] <- list(.plot="contour")
   plot(L)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.