ordiplot3d displays three-dimensional ordination
graphics using scatterplot3d. Function
ordirgl displays three-dimensional dynamic ordination graphs
which can be rotated and zoomed into using rgl
package. Both work with all ordination
results form vegan and all ordination results known by
scores function.ordiplot3d(object, display = "sites", choices = 1:3, ax.col = 2,
arr.len = 0.1, arr.col = 4, envfit, xlab, ylab, zlab, ...)
ordirgl(object, display = "sites", choices = 1:3, type = "p",
ax.col = "red", arr.col = "yellow", text, envfit, ...)
orglpoints(object, display = "sites", choices = 1:3, ...)
orgltext(object, text, display = "sites", choices = 1:3, justify = "center",
adj = 0.5, ...)
orglsegments(object, groups, display = "sites", choices = 1:3, ...)
orglspider(object, groups, display = "sites", w = weights(object, display),
choices = 1:3, ...)scores."sites" or "species" or other
ordination object recognized by scores.arrows function.arrows and centroids of
environmental variables."p" for points or "t" for
text labels.type =
"t".envfit
displayed in the graph.scatterplot3d. If missing, labels are
taken from the
ordination result. Set to NA to supress labels.rgl.texts. One of these is used depending on the
versionof ordiplot3d returns invisibly an object of class
"ordiplot3d" inheriting from ordiplot. The return
object will contain the coordinates projected onto two dimensions for
"points", and possibly for the heads of "arrows" and
"centroids" of environmental variables. Functions like
identify.ordiplot, points.ordiplot,
text.ordiplot can use this result, as well as
ordihull and other functions documented with the
latter. In addition, the result will contain the object returned by
scatterplot3d, including function
xyz.converter which projects three-dimensional
coordinates onto the plane used in the current plot.
Function ordirgl returns nothing.ordirgl uses OpenGL package
rgl
which may not be functional in all platforms, and can crash R in some:
use save.image before trying ordirgl.
Mac users must start X11 (and first install X11 and some other
libraries) before being able to use rgl. It seems
that rgl.texts does not always position the text
like supposed, and it may be safe to verify text location with
corresponding points.ordiplot3d plots static scatter diagrams using
scatterplot3d. Function ordirgl
plots dynamic graphics using OpenGL in rgl. Both
functions use most default settings of underlying graphical functions,
and you must consult their help pages to change graphics to suit your
taste (see scatterplot3d,
rgl,
rgl.points,rgl.texts). Both
functions will display only one selected set of scores,
typically either "sites" or "species", but
for instance cca also has "lc" scores. In
constrained ordination (cca, rda,
capscale), biplot arrows and centroids are always
displayed similarly as in two-dimensional plotting function
plot.cca. Alternatively, it is possible to display
fitted environmental vectors or class centroids from
envfit in both graphs. These are displayed similarly as
the results of constrained ordination, and they can be shown only for
non-constrained ordination. The user must remember to specify at least
three axes in envfit if the results are used with these
functions. Function ordiplot3d plots only points. However, it returns
invisibly an object inheriting from ordiplot so that you
can use identify.ordiplot to identify "points" or
"arrows". The underlying
scatterplot3d function accepts type
= "n" so that only the axes, biplot arrows and centroids of
environmental variables will be plotted, and the ordination scores can
be added with text.ordiplot or
points.ordiplot. Further, you can use any functions from
the ordihull family with the invisble result of
ordiplot3d, but you must remember to specify the
display as "points" or "arrows". To change the
viewing angle, orientation etc. you must see
scatterplot3d.
Function ordigl makes a dynamic three-dimensional graph that
can be rotated with mouse, and zoomed into with mouse buttons or wheel
(but Mac users with one-button mouse should see
rgl.viewpoint), or try ctrl-button. MacOS X users
must start X11 before calling rgl commands.
Function ordirgl uses default settings, and you should consult the
underlying functions rgl.points,
rgl.texts to see how to control the
graphics. Function ordirgl always cleans its graphic window
before drawing. Functions orglpoints adds points and
orgltext adds text to existing ordirgl windows. In
addition, function orglsegments combines points within
"groups" with line segments similarly as
ordisegments. Function orglspider works similarly
as ordispider: it connects points to their weighted
centroid within "groups", and in constrained ordination it can
connect "wa" or weighted averages scores to corresponding
"lc" or linear combination scores if "groups" is
missing. In addition, basic rgl functions
rgl.points, rgl.texts,
rgl.lines and many others can be used.
scatterplot3d,
rgl, rgl.points,
rgl.texts, rgl.viewpoint,
ordiplot, identify.ordiplot,
text.ordiplot, points.ordiplot,
ordihull, plot.cca, envfit.## Examples are not run, because they need non-standard packages
## 'scatterplot3d' and 'rgl' (and the latter needs user interaction).
#####
#### Default 'ordiplot3d'
data(dune)
data(dune.env)
ord <- cca(dune ~ A1 + Moisture, dune.env)
ordiplot3d(ord)
#### A boxed 'pin' version
ordiplot3d(ord, type = "h")
#### More user control
pl <- ordiplot3d(ord, angle=15, type="n")
points(pl, "points", pch=16, col="red", cex = 0.7)
#### identify(pl, "arrows", col="blue") would put labels in better positions
text(pl, "arrows", col="blue", pos=3)
text(pl, "centroids", col="blue", pos=1, cex = 1.2)
#### ordirgl
ordirgl(ord, size=2)
ordirgl(ord, display = "species", type = "t")
rgl.quit()Run the code above in your browser using DataLab