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()
.
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.
Two new coordinate systems provide control over the aspect ratio of the plotting window without compromising that of the (artificial) coordinate axes:
GeomRect
(alias GeomSquare
) extends GeomFixed
with an window_ratio
parameter for the plotting window, while GeomBiplot
removes the ratio
parameter and forces the coordinate axes to have aspect ratio 1.
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.
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.
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()
.
The 'biplot' theme has been renamed 'scaffold', with an alias for backward compatibility.
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:
- Methods for classes from specialty (lower-priority) packages (candisc and ca) are moved to ordr.extra and replaced with methods for classes from higher-priority packages (stats and MASS).
- One-off uses of specialty packages for examples and vignettes are replaced.
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.