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