Description Usage Arguments Details Value Warning Note Author(s) See Also Examples
Function 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.
1 2 3 4 5 6 7 8 9 10 | 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, ...)
|
object |
An ordination result or any object known by |
display |
Display |
choices |
Selected three axes. |
arr.len |
'Length' (width) of arrow head passed to
|
arr.col |
Colour of biplot |
type |
The type of plots: |
ax.col |
Axis colour (concerns only the crossed axes through the origin). |
text |
Text to override the default with |
envfit |
Fitted environmental variables from |
xlab, ylab, zlab |
Axis labels passed to
|
justify, adj |
Text justification passed to
|
groups |
Factor giving the groups for which the graphical item is drawn. |
w |
Weights used to find the average within group. Weights are
used automatically for |
... |
Other parameters passed to graphical functions. |
Both function display three-dimensional ordination graphics. Function
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 invisible 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
. Only one kind of scores
will be plotted. See Examples for plotting both species and
site scores.
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.
Function 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 the projected coordinates of
origin
, and possibly the projected coordinates of 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. The result will also contain the object
returned by scatterplot3d
, including
function xyz.convert
which projects three-dimensional
coordinates onto the plane used in the current plot (see
Examples). In addition, there is a function envfit.convert
that projects a three-dimensional envfit
object to the
current plot.
Function ordirgl
returns nothing.
Function 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.
Function ordiplot3d
is based on
scatterplot3d
which does not allow
exactly setting equal aspect ratio for axes. The function tries to
circumvent this by setting equal plotting ranges for all axes so that
the plot should be a cube. Depending on the dimensions of plotting
device, this may fail, and the user should verify that the axes are
approximately equal.
Please note that scatterplot3d
sets
internally some graphical parameters (such as mar
for margins)
and does not honour default settings. It is advisable to study
carefully the documentation and examples of
scatterplot3d
.
The user interface of rgl changed in version 0.65, but
the ordirgl
functions do not yet fully use the new
capabilities. However, they should work both in old and new versions
of rgl.
Jari Oksanen
scatterplot3d
,
rgl
, rgl.points
,
rgl.texts
, rgl.viewpoint
,
ordiplot
, identify.ordiplot
,
text.ordiplot
, points.ordiplot
,
ordihull
, plot.cca
, envfit
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ## Examples are not run, because they need non-standard packages
## 'scatterplot3d' and 'rgl' (and the latter needs user interaction).
#####
### Default 'ordiplot3d'
## Not run:
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, scaling = 3, 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)
### Add species using xyz.convert function returned by ordiplot3d
sp <- scores(ord, choices=1:3, display="species", scaling=3)
text(pl$xyz.convert(sp), rownames(sp), cex=0.7, xpd=TRUE)
### Two ways of adding fitted variables to ordination plots
ord <- cca(dune)
ef <- envfit(ord ~ Moisture + A1, dune.env, choices = 1:3)
### 1. use argument 'envfit'
ordiplot3d(ord, envfit = ef)
### 2. use returned envfit.convert function for better user control
pl3 <- ordiplot3d(ord)
plot(pl3$envfit.convert(ef), at = pl3$origin)
### envfit.convert() also handles different 'choices' of axes
pl3 <- ordiplot3d(ord, choices = c(1,3,2))
plot(pl3$envfit.convert(ef), at = pl3$origin)
### ordirgl
ordirgl(ord, size=2)
ordirgl(ord, display = "species", type = "t")
rgl.quit()
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.