Visualizing Generalized Canonical Discriminant and Canonical Correlation Analysis

Functions for computing and visualizing generalized canonical discriminant analyses and canonical correlation analysis for a multivariate linear model. Traditional canonical discriminant analysis is restricted to a one-way 'MANOVA' design and is equivalent to canonical correlation analysis between a set of quantitative response variables and a set of dummy variables coded from the factor variable. The 'candisc' package generalizes this to higher-way 'MANOVA' designs for all factors in a multivariate linear model, computing canonical scores and vectors for each term. The graphic functions provide low-rank (1D, 2D, 3D) visualizations of terms in an 'mlm' via the 'plot.candisc' and 'heplot.candisc' methods. Related plots are now provided for canonical correlation analysis when all predictors are quantitative.


Changes in version 0.8-0 (2017-09-16)

o Fix 1D plot.candisc to better reflect the canonical structure coefficients. The ylim of the scale is now forced to include 0 and -1 and/or +1 depending on the signs of the structure coefficients. [thx: Martina Vandebroek] o Pass ... to boxplot() and plot() for 1D in plot.candisc o Added diabetes vignette

Changes in version 0.7-2 (2016-11-09)

o Add Wilks.candisc method; this corrects a bug where the values of the stepdown tests for canonical discriminant analysis were calculated incorrectly [thx: Martina Vandebroek] o Now use Wilks.candisc in print.candisc

Changes in version 0.7-1 (2016-05-23)

o respect var.lwd in 2D plot.candisc() o heplot.candisc() gets a rev.axes argument to reverse the axes and a var.pos argument to position variable labels o vectors() now produces nicer arrow head a la matlib::vectors() o added var.pos argument to plot.candisc o allow to suppress likelihood ratio tests in print.candisc

Changes in version 0.7-0 (2016-04-25)

o Added Wine data -- three cultivars with a very simple canonical structure o Added ellipses to plot.candisc(); enhanced candisc.Rd documentation o Added varOrder() for effect ordering in MLMs o plot.candisc() gets a var.labels argument o added method="colmean" and descending=T/F to varOrder() o plot.candisc() gets a rev.axes argument o fixed imports() in NAMESPACE for CRAN checks

Changes in version 0.6-7 (2015-04-15)

o Now use rgl:: in *3d functions and requireNamespace("rgl") o import(car)

Changes in version 0.6-6 (2013-06-17)

o Added vecscale() to more reliably scale the variable vectors in plot.candisc() and heplot.candisc()
  to the plot bounding box [thx: Uwe Ligges for the code]
o Exported vecscale
o Added can_lm() to calculate the canonical lm() representation of a term in an mlm

Changes in Version 0.6-5 (2013-03-20)

o candisc() now doesn't allow ndim > rank [thx: [email protected]]
o In plot.candisc() fixed bug in use of pch and col [thx: [email protected]] and cleaned up code

Changes in Version 0.6-4 (2013-03-17)

o Don't use paste0() to avoid dependency on R>2.15.0

Changes in Version 0.6-3 (2013-02-13)

o Minor documentation changes
o In cancor(), now handle missing data more flexibly via na.rm= and use=
o Now suggest corrplot package for cancor.Rd example

Changes in Version 0.6-2 (2013-01-30)

o Reorganized print() and summary() methods for cancor()
o Smoothed out documentation
o Added observation weights to cancor() methods
o Added ability to plot X and or Y vectors in heplot.cancor()
o Extended example of plot.cancor(), showing variable vectors for X & Y

Changes in Version 0.6-1 (2013-1-23)

o Continued development of methods and plots for canonical correlation analysis within the
  HE plot framework:
o Now export scores() and scores.cancor() method
o coef.cancor gets a standardize= argument
o Added redundancy() for redundancy analysis
o Added a plot.cancor() method, visualizing the relations between the Ycan and Xcan variable scores
o Added vectors3d()
o Added heplot3d() method for cancor objects.
o More significantly, re-implemented cancor() as an S3 generic, with a cancor.formula method and 
  the original as the cancor.default method.

Changes in Version 0.6-0 (2013-1-20)

o Added cancor and related methods for canonical correlation analysis
o Added Wilks() methods for Wilks' Lambda canonical tests
o Added vectors() for drawing labeled vectors
o Added S3 heplot.cancor() method for cancor objects.

Changes in Version 0.5-23 (2012-2-3)

o Fixed buglet in summary.candisc() [thx: David Carlson, [email protected]]
o heplot.candisc now uses plot.candisc in the 1 df case

Changes in Version 0.5-22 (2011-12-10)

o Extended Description:

Changes in Version 0.5-21 (2011-09-12)

o Fixed [email protected] in DESCRIPTION for R 2.14.x

Changes in Version 0.5-20 (2010-10-208)

o Updated links to
o Updated candisc heplot3d() examples

Changes in Version 0.5-19 (2010-7-29)

 o switched inst/CHANGES to NEWS
 o Extended candiscList and Grass examples
 o Extended package description
 o Fixed minor buglet in print.candisc

Changes in Version 0.5-18 (2010-7-27)

o  Fixed predictor.names problem with car_2.0-0
o  Added var.cex to heplot.candisc and heplot3d.candisc

Changes in Version 0.5-17 (2010-2-11)

o  Allow to select canonical dimension in plot(candisc(), which=)

Changes in Version 0.5-15 (2009-6-12)

o  Added titles.1d argument to plot.candisc to allow customized titles for 1D plots
   (wish of Manuel Sp?nola)

Changes in Version 0.5-13 (2008-12-16)

o  Added Wolves data, with examples for 2-way design.
o  Improved plot for 1D case.

Changes in Version 0.5-11 (2008-11-12)

o  Michael Friendly now maintainer
o  now require heplots >= 0.8-3 for use of xlim, ylim, zlim
o  added asp="iso" to heplot3d.candisc, so default is now equal scaling

Changes in Version 0.5-10 (2008-11-5)

o  improved documentation
o  added var.lwd to heplot3d.candisc
o  changed rgl.* to *3d functions to avoid rgl problems
o  added suffix= to heplot.candisc and heplot3d.candisc
o  added graphics=TRUE to menus in *.candiscList functions
o  added suffix= to plot.candisc

Changes in Version 0.5-9 (2008-04-24)

Changes in Version 0.5-8 (2008-04-11)

Changes in Version 0.5-7 (2007-10-29)

o Initial version released to CRAN.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.8-6 by Michael Friendly, 3 months ago

Report a bug at

Browse source code at

Authors: Michael Friendly [aut, cre] , John Fox [aut]

Documentation:   PDF Manual  

GPL (>= 2) license

Depends on car, heplots, graphics, stats

Suggests rgl, corrplot, knitr, rmarkdown, MASS, rpart, rpart.plot

Imported by MorphoTools2, MultivariateAnalysis, smacof.

Suggested by Guerry, heplots.

See at CRAN