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.
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.