Project a set of shapes as scatterpoints into an existing morphospace.
proj_shapes(mspace, shapes, density = TRUE, pipe = TRUE, ...)
An "mspace"
object.
Shape data.
Logical; whether to add density distribution for points (univariate ordinations only).
Logical; is the function being included in a pipe?
Further arguments passed to graphics::points()
.
If a plot device with a morphospace is open, shapes fed to
shapes
are projected into morphospace. If pipe = FALSE
those scores are returned invisibly. If pipe = TRUE
the supplied
"mspace"
object will be modified by appending a $scores
slot
to $projected
and adding some graphical parameters (stored into the
$plotinfo
slot), and returned invisibly.
The purpose of this function is to maintain morphospace building and sample representation as separated steps, as well as to add flexibility to graphical representation of scatterpoints.
#load and extract relevant data, packages and information
library(magrittr)
data("wings")
shapes <- wings$shapes
cactus <- wings$data$sex
species <- wings$data$species
template <- wings$template
#generate basic morphospace, add sampled shapes
mspace(shapes, template = template, mag = 0.7, axes = c(1,2)) %>%
proj_shapes(shapes = shapes)
#> Error in shapes_mat(shapes): object 'data2d' not found
#change colors, symbols, etc for the scatter
mspace(shapes, template = template, mag = 0.7, axes = c(1,2)) %>%
proj_shapes(shapes = shapes[,,species == "Db"], col = c("green"),
pch = c(1,16)[cactus[species == "Db"]]) %>%
proj_shapes(shapes = shapes[,,species == "Dk"], col = c("blue"),
pch = c(1,16)[cactus[species == "Dk"]])
#> Error in shapes_mat(shapes): object 'data2d' not found