heplots
1.8.6Visualizing Hypothesis Tests in Multivariate Linear Models
Overview
Provides HE plot and other functions for visualizing hypothesis tests in multivariate linear models. HE plots represent sums-of-squares-and-products matrices for linear hypotheses and for error using ellipses (in two dimensions) and ellipsoids (in three dimensions). It also provides other tools for analysis and graphical display of the models such as robust methods and homogeneity of variance covariance matrices. The related 'candisc' package provides visualizations in a reduced-rank canonical discriminant space when there are more than a few response variables.
Enhancements
- Added a two-page cheatsheet,
heplots-cheatsheet.pdf, linked from the README and the pkgdown navbar, to provide a visual overview of the package. - Added a
robmlm.mlm()method sorobmlm()can be called directly on an existing classicalmlmfit (e.g.,robmlm(mod)) instead of restating the formula and data. The result records its call asrobmlm(formula = , data = , ...), just as if it had been fit from the formula, soupdate()works on it. Arguments that would change the model frame (subset,weights,data, ...) now signal an error rather than being silently ignored; set them in thelm()call, or useupdate()on the result. Other arguments must be named (e.g.,robmlm(mod, P = 0.01)), since an unnamed one would be taken asP. - Doc fix: Clarified the **significance interpretation** of HE plots in
heplot(),heplot3d(), the README and theHE_manovavignette: **H** protrudes outside **E** somewhere in the *full* response space iff the term is significant by Roy's test, but in a 2D (or 3D) view the rule works one way only. **H** outside **E** means significant; **H** inside **E** does not mean "not significant". Thealphaargument ofheplot1d()is now correctly described as referring to the univariate F test for the response shown.
Show all changes in 1.8.6Hide the rest of the changes in 1.8.6
Bug fixes
- Fixed
termMeans(): when the data were not sorted in factor-level order, the row labels were attached to the wrong means (e.g.,pengspecies, or thePlasticrate:additivecells in theHE_manovavignette). This also affected the mean labels inheplot1d(). Rows are now in **factor-level order** (first factor varying fastest), and empty cells are dropped instead of causing an error. - Fixed
eigstatCI(): the "pooled" statistic was computed from the total covariance matrixcov(Y), ignoring groups, so it included the between-group variation. It now uses the pooled within-group covariance matrix, as inboxM()$pooled, and bootstraps it by resampling within groups. This changes the "pooled" point and CI inplot_boxM_boot(). This achieves a long-standing goal to make the plot methods related toboxM()more general, using bootstrap methods instead of asymptotic theory. - Fixed
label.ellipse(): the diagonal positionslabel.pos = "SE"and"NW"were swapped. The documentation for a fractionallabel.posnow says correctly that it is measured counterclockwise from East (0 = right, 0.25 = top). - Fixed
covEllipses():label.pos = NULL, documented as giving automatic label positions, failed with "cannot replicate NULL". It now works. The documentation also wrongly saidNULLwas the default; the default is0(the ellipse center), and is unchanged. - Fixed
pvPlot()for tibbles (e.g.,peng): it failed with "invalid type (list)", because selecting one column of a tibble does not give a vector.Xis now converted withas.data.frame().
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-20
- ERROR12 OK, 1 ERROR2026-08-18
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
Show 4 earlier changesHide 4 earlier changes
- ERROR12 OK, 1 ERROR2026-06-08
- OK13 OK2026-05-02
- ERROR11 OK, 1 ERROR2026-04-25
- OK14 OK2026-03-10
Documentation
- Help pages
- 83 (2 internal)includes a package overview page
- Examples that run
- 96%74 run in a plain check · 2 never run · 1 hold no code
- Exported functions with examples
- 90%
- Documented parameters
- 87%
- Return-value docs
- 90%
- Help pages citing references
- 46%
Also includes 4 demo scripts (run with demo())
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 100
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Forks over time
Releases over time
Commits over time
Commit identities over time
7 development-tooling and community-health practices detected across 4 families in the upstream repository
Checks run against github.com/friendly/heplots on 2026-10-11.
GitHub Pages site last deployed 2026-10-04
pkgdown site last built 2026-10-02, before release 1.8.6 (2026-10-04)
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2025-12-02Seen in the repository: .claude, CLAUDE.mdNamed in .Rbuildignore: .claude, CLAUDE.mdNamed in .gitignore: .claudeCommits: at least 40 crediting it in the message
- Codexfirst seen 2026-08-23Commits: at least 2 crediting it in the message
- Claude Sonnet 536 commits · Jul to Sep 2026
- Claude Opus 5.54 commits · Sep to Oct 2026
Dependencies
Installing heplots adds 83 packages (45 with compiled code, 76 MB of source tarballs). Heaviest: stringi 11 MB, ggplot2 6.0 MB, bslib 5.6 MB.
Code & Tests
Datasets
People & History
Previously maintained by John Fox (0.8-0 to 0.8-4).
Pick two releases to compare their code metrics.
- 1.8.6Latest
- 1.8.5
- 1.8.4
- RR 4.6.0 released · 2026-04-24
- 1.8.1
- 1.7.8
- 1.7.52025-05-24 · diff ↗
- 1.7.4
- RR 4.5.0 released · 2025-04-11
- 1.7.3
- 1.7.12024-11-24 · diff ↗
- 1.7.02024-05-02 · diff ↗
- RR 4.4.0 released · 2024-04-24
- 1.6.2
- 1.6.0
- RR 4.3.0 released · 2023-04-21
Show 59 earlier eventsHide 59 earlier events
- 1.4-22022-10-20 · diff ↗
- 1.4-1
- RR 4.2.0 released · 2022-04-22
- 1.3-92021-10-06 · diff ↗
- RR 4.1.0 released · 2021-05-18
- 1.3-82021-01-21 · diff ↗
- 1.3-72020-10-28 · diff ↗
- RR 4.0.0 released · 2020-04-24
- RR 3.6.0 released · 2019-04-26
- RR 3.5.0 released · 2018-04-23
- 1.3-52018-04-03 · diff ↗
- 1.3-42017-09-15 · diff ↗
- RR 3.4.0 released · 2017-04-21
- 1.3-32016-10-21 · diff ↗
- 1.3-12016-06-14 · diff ↗
- 1.3-02016-06-04 · diff ↗
- 1.2-0
- RR 3.3.0 released · 2016-05-03
- 1.1-0
- 1.0-162015-07-13 · diff ↗
- 1.0-15
- RR 3.2.0 released · 2015-04-16
- 1.0-122014-07-02 · diff ↗
- RR 3.1.0 released · 2014-04-10
- 1.0-112013-08-21 · diff ↗
- 1.0-82013-04-11 · diff ↗
- RR 3.0.0 released · 2013-04-03
- 1.0-7
- 1.0-5
- 1.0-2
- 1.0-02012-08-08 · diff ↗
- 0.9-122012-05-17 · diff ↗
- RR 2.15.0 released · 2012-03-30
- 0.9-112012-02-12 · diff ↗
- RR 2.14.0 released · 2011-10-31
- 0.9-102011-10-17 · diff ↗
- 0.9-8
- RR 2.13.0 released · 2011-04-13
- 0.9-62010-11-02 · diff ↗
- RR 2.12.0 released · 2010-10-15
- 0.9-52010-10-05 · diff ↗
- 0.9-4
- 0.9-32010-07-29 · diff ↗ ·
added 7 exports
cross3d, statList, covList, colMeansList, arrow3d, etasq, gsorth - RR 2.11.0 released · 2010-04-22
- 0.8-11
- RR 2.10.0 released · 2009-10-26
- 0.8-102009-10-13 · diff ↗
- 0.8-9
- 0.8-62009-04-19 · diff ↗
- RR 2.9.0 released · 2009-04-17
- 0.8-52009-04-03 · diff ↗
- 0.8-42008-11-19 · diff ↗
- 0.8-12008-11-03 · diff ↗
- RR 2.8.0 released · 2008-10-20
- RR 2.7.0 released · 2008-04-22
- RR 2.6.0 released · 2007-10-03
- RR 2.5.0 released · 2007-04-24
- 0.8-02007-02-01
- RR 2.4.0 released · 2006-10-03
Package metadata
- First published
- 2007-02-01
- Total releases
- 49 / 19 yrs
- License
- GPL (>= 2) OSI
- Minimum R
- ≥ 4.1.0
- Bundled data
- 110 KB / 37 files
- Download size
- 4.0 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("heplots")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
The repository also keeps a CITATION.cff.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-17, which the citation names so these numbers can be found later. More on citing and the projects behind them.