plot.linim: Plot Pixel Image on Linear Network

plot.linimR Documentation

Plot Pixel Image on Linear Network

Description

Given a pixel image on a linear network, the pixel values are displayed either as colours or as line widths.

Usage

## S3 method for class 'linim'
plot(x, ..., style = c("colour", "width"),
             scale, adjust = 1, fatten = 0, 
             negative.args = list(col=2),
             legend=TRUE,
             leg.side=c("right", "left", "bottom", "top"),
             leg.sep=0.1,
             leg.wid=0.1,
             leg.args=list(),
             leg.scale=1,
             zlim,
             box=FALSE,
             do.plot=TRUE)

Arguments

x

The pixel image to be plotted. An object of class "linim".

...

Extra graphical parameters, passed to plot.im if style="colour", or to polygon if style="width".

style

Character string (partially matched) specifying the type of plot. See Details.

scale

Physical scale factor for representing the pixel values as line widths.

adjust

Adjustment factor for the conversion of pixel value to line width, when style="width".

fatten

Distance by which the line segments should be thickened, when style="colour".

negative.args

A list of arguments to be passed to polygon specifying how to plot negative values of x when style="width".

legend

Logical value indicating whether to plot a legend (colour ribbon or scale bar).

leg.side

Character string (partially matched) indicating where to display the legend relative to the main image.

leg.sep

Factor controlling the space between the legend and the image.

leg.wid

Factor controlling the width of the legend.

leg.scale

Rescaling factor for annotations on the legend. The values on the numerical scale printed beside the legend will be multiplied by this rescaling factor.

leg.args

List of additional arguments passed to image.default, axis or text.default to control the display of the legend. These may override the ... arguments.

zlim

The range of numerical values that should be mapped. A numeric vector of length 2. Defaults to the range of values of x.

box

Logical value indicating whether to draw a bounding box.

do.plot

Logical value indicating whether to actually perform the plot.

Details

This is the plot method for objects of class "linim". Such an object represents a pixel image defined on a linear network.

If style="colour" (the default) then the pixel values of x are plotted as colours, using plot.im. The mapping from pixel values to colours is determined by any additional arguments ... which are passed to plot.im.

If style="width" then the pixel values of x are used to determine the widths of thick lines centred on the line segments of the linear network. This style of plot is often attributed to Xie and Yan (2008). The mapping from pixel values to line widths is determined by the arguments scale and adjust. The plotting of colours and borders of the lines is controlled by the additional arguments ... which are passed to polygon. A different set of colours and borders can be assigned to negative pixel values by passing a list of arguments in negative.args as shown in the Examples.

A legend is displayed alongside the plot if legend=TRUE (the default). The legend displays the relationship between pixel values and colours (if style="colour") or between pixel values and line widths (if style="width").

The plotting of the legend itself is controlled by the arguments leg.side, leg.sep, leg.wid, leg.scale and the list of arguments leg.args, which are described above. If style="colour", these arguments are mapped to the arguments ribside, ribsep, ribwid, ribscale and ribargs respectively, which are passed to plot.im.

Value

If style="colour", the result is an object of class "colourmap" specifying the colour map used. If style="width", the result is a numeric value v giving the physical scale: one unit of pixel value is represented as v physical units on the plot.

The result also has an attribute "bbox" giving a bounding box for the plot. The bounding box includes the ribbon or scale bar, if present, but not the main title.

Thin lines

When style="colour" it often appears that the lines are drawn too thin. This occurs because x is a pixel image, in which the only pixels that have a defined value are those which lie directly over the network. To make the lines appear thicker in the plot, use the argument fatten. The domain of the image will be expanded by a distance equal to fatten/2 in every direction using dilation.owin; the pixel values will be extrapolated to this expanded domain using nearestValue. This may improve the visual appearance of the plot.

Author(s)

\adrian

References

Ang, Q.W., Baddeley, A. and Nair, G. (2012) Geometrically corrected second-order analysis of events on a linear network, with applications to ecology and criminology. Scandinavian Journal of Statistics 39, 591–617.

Xie, Z. and Yan, J. (2008) Kernel Density Estimation of traffic accidents in a network space. Computers, Environment and Urban Systems 32, 396–406.

See Also

linim, plot.im, polygon

Examples

  X <- linfun(function(x,y,seg,tp){y^2+x}, simplenet)
  X <- as.linim(X)
  
  plot(X, main="Colour represents function value")
  plot(X, fatten=0.02, main="fattened")

  plot(X, style="width", main="Width proportional to function value")

  # signed values
  f <- linfun(function(x,y,seg,tp){y-x}, simplenet)
  plot(f, style="w", main="Negative values in red")

  plot(f, style="w", negative.args=list(density=10),
       main="Negative values are hatched")


spatstat.linnet documentation built on Sept. 20, 2024, 5:06 p.m.