Learn R Programming

spatstat.geom (version 2.1-0)

plot.psp: plot a Spatial Line Segment Pattern

Description

Plot a two-dimensional line segment pattern

Usage

# S3 method for psp
plot(x, …, main, add=FALSE,
                     show.all=!add, show.window=show.all, do.plot=TRUE,
                     which.marks=1,
                     style=c("colour", "width", "none"),
                     col=NULL, 
                     ribbon=show.all,
                     ribsep=0.15, ribwid=0.05, ribn=1024,
                     scale=NULL, adjust=1,
                     legend=TRUE,
                     leg.side=c("right", "left", "bottom", "top"),
                     leg.sep=0.1,
                     leg.wid=0.1,
                     leg.args=list(),
                     leg.scale=1,
                     negative.args=list(col=2))

Arguments

x

The line segment pattern to be plotted. An object of class "psp", or data which can be converted into this format by as.psp().

extra arguments that will be passed to the plotting functions segments (to plot the segments) and plot.owin (to plot the observation window).

main

Character string giving a title for the plot.

add

Logical. If TRUE, the current plot is not erased; the segments are plotted on top of the current plot, and the window is not plotted (by default).

show.all

Logical value specifying whether to plot everything including the window, main title, and colour ribbon.

show.window

Logical value specifying whether to plot the window.

do.plot

Logical value indicating whether to actually perform the plot.

which.marks

Index determining which column of marks to use, if the marks of x are a data frame. A character string or an integer. Defaults to 1 indicating the first column of marks.

style

Character string specifying how to represent the mark value of each segment. If style="colour" (the default) segments are coloured according to their mark value. If style="width", segments are drawn with a width proportional to their mark value. If style="none" the mark values are ignored.

col

Colour information. If style="width" or style="none", then col should be a single value, interpretable as a colour; the line segments will be plotted using this colour. If style="colour" and x has marks, then the mark values will be mapped to colours using the information in col, which should be a colour map (object of class "colourmap") or a vector of colour values.

ribbon

Logical value indicating whether to display a ribbon showing the colour map (in which mark values are associated with colours) when style="colour".

ribsep

Factor controlling the space between the colour ribbon and the image.

ribwid

Factor controlling the width of the colour ribbon.

ribn

Number of different values to display in the colour ribbon.

scale

Optional. Physical scale for representing the mark values of x as physical widths on the plot, when style="width". There is a sensible default.

adjust

Optional adjustment factor for scale.

legend

Logical value indicating whether to display a legend showing the width map (in which mark values are associated with segment widths) when style="width".

leg.side

Character string (partially matched) specifying where the legend should be plotted, when style="width".

leg.sep

Factor controlling the space between the legend and the main plot, when style="width".

leg.wid

Factor controlling the width of the legend, when style="width".

leg.args

Optional list of additional arguments passed to axis and text.default controlling the appearance of the legend, when style="width".

leg.scale

Rescaling factor for labels, when style="width". The values on the numerical scale printed beside the legend will be multiplied by this rescaling factor.

negative.args

Optional list of arguments to polygon to be used when the mark values are negative.

Value

If style="colour", the result is a colourmap object specifying the association between marks and colours, if any.

If style="width", the result is a numeric value giving the scaling between the mark values and the physical widths.

In all cases, the return value also has an attribute "bbox" giving a bounding box for the plot.

Details

This is the plot method for line segment pattern datasets (of class "psp", see psp.object). It plots both the observation window Window(x) and the line segments themselves.

Plotting of the window Window(x) is performed by plot.owin. This plot may be modified through the ... arguments.

Plotting of the segments themselves is performed by the standard R function segments. Its plotting behaviour may also be modified through the ... arguments.

There are three different styles of plotting which apply when the segments have marks (i.e. when marks(x) is not null):

style="colour" (the default):

Segments are plotted with different colours depending on their mark values. The colour map, associating mark values with colours, is determined by the argument col. The colour map will be displayed as a vertical colour ribbon to the right of the plot, if ribbon=TRUE (the default).

style="width":

Segments are plotted with different widths depending on their mark values. The expanded segments are plotted using the base graphics function polygon. The width map, associating mark values with line widths, can be specified by giving the physical scale factor scale. There is a sensible default scale, which can be adjusted using the adjustment factor adjust. The width map will be displayed as a vertical stack of lines to the right of the plot, if legend=TRUE (the default).

style="none":

Mark information is ignored and the segments are plotted as thin lines using segments.

If marks(x) is a data frame, the default is to use the first column of marks(x) to determine the colours or widths. To specify another column, use the argument which.marks.

See Also

psp.object, plot, par, plot.owin, text.psp, symbols

Examples

Run this code
# NOT RUN {
  X <- psp(runif(20), runif(20), runif(20), runif(20), window=owin())
  plot(X)
  plot(X, lwd=3)
  lettuce <- sample(letters[1:4], 20, replace=TRUE)
  marks(X) <- data.frame(A=1:20, B=factor(lettuce))
  plot(X)
  plot(X, which.marks="B")
  plot(X, style="width", col="grey")
# }

Run the code above in your browser using DataLab