Previously, lda_ord()
mimicked MASS::lda()
in defaulting the retrieval parameters ret.x
and
ret.grouping
to FALSE
. Because they are so
important to analysis and especially to biplots, they now default to
TRUE
.
Unit tests have been written for all ggproto shortcuts, though many of these were subsequently migrated to gggda.
Multiple harmonizers are now available for scaling secondary axes. That recommended by Gower, Gardner–Lubbe, and Le Roux (2011) is the default, but the user can still specify a numeric scale instead.
A new ‘scaffold’ coordinate system fixes the aspect ratio to 1 (required for biplots) and provides user control over the ratio of plotting window dimensions (which defaults to 1, recommended for biplots). It builds on the ‘rect’ coordinate system originally developed in ordr but migrated to gggda.
The ‘biplot’ theme has been renamed ‘scaffold’, with an alias for backward compatibility.
The elements
parameter is now standardized across all
statistical transformations (through the code generation process) and
accepts more restrictive options: The value is argument-matched to
"active"
, "score"
, or
"structure"
; these options may expand as additional
supplementary elements are introduced. Moreover, the former default
"all"
is no longer accepted, which forecloses the trick of
passing the element type to an aesthetic,
e.g. size = .element == "active"
, as had been used in
several examples.
Most statistical transformations and geometric constructions have been migrated to gggda. The changes below were made prior to this migration and have the same effects since gggda is now an imported dependency.
The ‘vector’ and ‘text_radiate’ geoms have been combined. The
shortcut geom_text_radiate()
is deprecated, and
geom_vector()
generates radiating labels by default.
The ‘axis’ and ‘isoline’ geoms hit trouble when one or more points
lay at the origin (x^2 + y^2 == 0
). These cases have now
been removed in setup_data()
.
The ‘center’ and ‘star’ stats now follow the ‘summary’ stat
convention of using fun
, so fun.center
is
deprecated. Additionally, fun.ord
accepts a function that
summarizes the columns of a matrix, which accommodates summaries like
the depth median that do not decompose along orthogonal axes.
Previously, underscore-separated parameters like
label_colour
were used to specify secondary aesthetics,
i.e. aesthetics for graphical objects other than those considered
“primary” for the layer. Their behavior has been debugged by mimicking
the use of period-separated parameters like label.colour
in
ggplot2 v3.5.1, except for the new bagplot geom, for
which their behavior is based on that of geom_boxplot()
in
the current development version of ggplot2. This
induces some breaking changes due to the renaming of most, and the
removal of some, such parameters.
A new ‘interpolation’ geometric element layer renders either of two methods of vector addition to interpolate the position—on the existing ordination and its biplot—of a new row or column of the original data matrix.
A new statistical transformation serves to parent specific
“referential stats”, meaning those that depend on non-inherited (in this
setting, positional) data to transform the inherited data. The reference
data are passed to the new referent
parameter. The new stat
is coupled with an additional LayerRef
class that enables
ggplot_add()
to pass the inherited positional aesthetics to
$setup_params()
. Biplot-specific stat_*_*()
shortcuts accept additional argument types to referent
that
result in the opposite matrix factor being used as reference data.
The ‘projection’ referential stat prepares segment endpoints between
x,y
positions and their projections on axes defined by the
reference data. It is a natural graphical element for predictive biplots
of ordination models of continuous data.
A new ‘rule’ statistical transformation computes additional position
aesthetics that the ‘axis’ geom uses to limit and offset axes. The stat
is referential and expects a set of functions that compute limits
lower
and upper
along the axes and
yintercept
and xintercept
associated with
offset axes. The ‘axis’ geom preprocesses these aesthetics to rule
endpoints xmin,ymin,xmax,ymax
and offset vectors
xend,yend
to force the plotting window to contain the
limited axis segments or, if the axes remain lines, the offsets where
they are centered.
A new ‘peel’ statistical transformation computes nested convex hulls containing specified fractions of data.
A new ‘depth’ statistical transformation estimates depth across a
grid and is paired with GeomContour
to produce depth
contours, which can be used to plot alpha bags.
Aided by element standardization, the classic density_2d
statistical transformation and geometric construction are adapted to
biplots. Currently, source code generation does not respect fixed
parameters passed to layer()
by the stat_*()
and geom_*()
shortcuts; as a consequence,
contour = TRUE
must be manually passed to
geom_*_density_2d()
.
This patch prepares for an upcoming ggplot2 release that overhauls aesthetic mappings (#82). No changes to user experience are anticipated.
linewidth
aesthetic (breaking change)An upcoming release of ggplot2 controls stroke width
using the new linewidth
aesthetic rather than
size
. This ordr release adapts to this
change internally for GeomUnitCircle
and by updating row
and column layers automatically adapted from ggplot2.
(#50)
Methods are added for the ‘eigen’ class returned by
eigen()
, and the internal eigen_ord()
function
and its methods are updated accordingly.
The previous version extended the ‘list’ method for
broom’s tidy()
and glance()
functions to recognize the output of cmdscale()
and of
cancor()
. These have been spun off to a nascent helper
package, broom.list, to reduce size and prevent
attachment warnings.
In addition to minor changes, the following substantive changes are made from v0.0.2:
The column names of augment_ord()
and
tidy()
outputs are no longer prefixed by periods.
A new list tidier for cancor()
output is introduced.
Tools to negate a subset of artificial dimensions, adapted from the sandboxed set of alignment tools, are provided.
The ordinate()
function is now a generic with methods
for four data classes.
The logical prediction
parameter is replaced with the
character-valued axis.type
, based on the
ax.type
parameter used in UBbipl (Gower,
Gardner–Lubbe, & le Roux, 2011).
Unit tests are overhauled to remove contexts, omit ad hoc tests, standardize method tests, and cover additional methods.
The term ‘accessor’, used to refer to S3 class methods to recover standardized model components, has been changed to ‘recoverer’.
This pre-release makes several substantive changes in preparation for CRAN submission.
Annotation of active and supplementary elements is standardized: The
character augmentation .element
replaces the logical
.supplement
, and class methods either omit it entirely
(when all retrieved elements are active) or include it in both row and
column augmentation (when either includes supplementary elements). The
value of .element
is either ‘active’ or a type of
supplement, e.g. ‘score’.
Extraneous dependencies are dropped to reduce overhead. This takes two forms:
The Description
field in DESCRIPTION is expanded and
documentation throughout is slightly revised, including some new
references.
This is a pre-release in anticipation of a first CRAN submission. Upgrades between this pre-release and CRAN submission will focus on addressing issues.