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.