Learn R Programming

vegan (version 2.6-8)

ordiplot: Alternative plot and identify Functions for Ordination

Description

Function ordiplot is an alternative plotting function which can be worked with any vegan ordination result and many non-vegan results. In addition, plot functions for vegan ordinations return invisibly an "ordiplot" result object, and this allows using ordiplot support functions with this result: identify can be used to add labels to selected site, species or constraint points, and points and text can add elements to the plot.

Usage

ordiplot(ord, choices = c(1, 2), type="points", display, xlim, ylim,
     cex = 0.7, ...)
# S3 method for ordiplot
identify(x, what, labels,  ...)
# S3 method for ordiplot
points(x, what, select, arrows = FALSE, ...)
# S3 method for ordiplot
text(x, what, labels, select, arrows = FALSE,
    length = 0.05, ...)

Value

Function ordiplot returns invisibly an object of class

ordiplot with used scores. In general, vegan

plot

functions for ordination results will also return an invisible

ordiplot object. If the plot(..., type = "n") was used originally, the plot is empty, and items can be added with the invisible object. Functions points and text will return their input object without modification, which allows chaining these commands with pipes. Function identify.ordiplot uses this object to label the point.

Arguments

ord

A result from an ordination.

choices

Axes shown.

type

The type of graph which may be "points", "text" or "none" for any ordination method.

display

Display only "sites" or "species". The default for most methods is to display both, but for cca, rda, dbrda and capscale it is the same as in plot.cca.

xlim, ylim

the x and y limits (min,max) of the plot.

cex

Character expansion factor for points and text.

...

Other graphical parameters.

x

A result object from ordiplot.

what

Items identified in the ordination plot. The types depend on the kind of plot used. Most methods know sites and species, functions cca and rda know in addition constraints (for LC scores), centroids and biplot, and plot.procrustes ordination plot has heads and points.

labels

Optional text used for labels. Row names will be used if this is missing.

arrows

Draw arrows from the origin. This will always be TRUE for biplot scores and its value will be ignored. Setting this TRUE will draw arrows for any type of scores. This allows, e.g, using biplot arrows for species. The arrow head will be at the value of scores, and possible text is moved outwards.

length

Length of arrow heads (see arrows).

select

Items to be displayed. This can either be a logical vector which is TRUE for displayed items or a vector of indices of displayed items.

Author

Jari Oksanen

Details

Function ordiplot draws an ordination diagram using black circles for sites and red crosses for species. It returns invisibly an object of class ordiplot which can be used by identify.ordiplot to label selected sites or species, or constraints in cca and rda.

The function can handle output from several alternative ordination methods. For cca, rda and decorana it uses their plot method with option type = "points". In addition, the plot functions of these methods return invisibly an ordiplot object which can be used by identify.ordiplot to label points. For other ordinations it relies on scores to extract the scores.

For full user control of plots, it is best to call ordiplot with type = "none" and save the result, and then add sites and species using points.ordiplot or text.ordiplot which both pass all their arguments to the corresponding default graphical functions. The functions can be chained with pipes which allows an alternative intuitive way of building up plots.

See Also

identify for basic operations, plot.cca, plot.decorana, plot.procrustes which also produce objects for identify.ordiplot and scores for extracting scores from non-vegan ordinations.

Examples

Run this code
## Draw a plot for a non-vegan ordination (cmdscale).
data(dune)
dune.dis <- vegdist(wisconsin(dune))
dune.mds <- cmdscale(dune.dis, eig = TRUE)
dune.mds$species <- wascores(dune.mds$points, dune, expand = TRUE)
pl <- ordiplot(dune.mds, type = "none")
points(pl, "sites", pch=21, col="red", bg="yellow")
text(pl, "species", col="blue", cex=0.9)
if (FALSE) {
## same plot using pipes (|>)
ordiplot(dune.mds, type="n") |>
  points("sites", pch=21, col="red", bg="yellow") |>
  text("species", col="blue", cex=0.9)
## Some people think that species should be shown with arrows in PCA.
## Other ordination methods also return an invisible ordiplot object and
## we can use pipes to draw those arrows.
mod <- rda(dune)
plot(mod, type="n") |>
  points("sites", pch=16, col="red") |>
  text("species", arrows = TRUE, length=0.05, col="blue")
}
## Default plot of the previous using identify to label selected points
if (FALSE) {
pl <- ordiplot(dune.mds)
identify(pl, "spec")}

Run the code above in your browser using DataLab