Plot 'rpart' Models: An Enhanced Version of 'plot.rpart'

Plot 'rpart' models. Extends plot.rpart() and text.rpart() in the 'rpart' package.


Changes to rpart.plot


Minor changes to internal function calls to prevent warnings when options(warnPartialMatchArgs=TRUE).

Test script touchups.

3.0.5 Nov 2, 2018

We now handle splits with very small values better (less than 1e-10). Thanks to Petr Lenhard for help on this.

Added the "under.percent" argument to control spacing before the percentage when 100 is used with the "extra" argument.

3.0.4 Aug 13, 2018

Variables with values 0 and 1 only are now treated as logical variables if roundint=TRUE i.e. they are displayed as "var is 0" and "var is 1".

Rpart.rules now explicitly shows if the model is a null model.

We now work better with caret train models. (Extended handling of model$call$data, so rpart.plot no longer issues the warning "Bad data field in model call" with such models.)

Documentation updates.

3.0.3 Aug 5, 2018

Survival responses are now once again handled correctly (broken in version 3.0.0). Thanks to Robert Redd for help on this.

Added the rpart.predict function for printing the rules for predictions.

If rpart.rules(nn=TRUE) we now prepend (rather than append) the node numbers.

Tweaks to make the colors more visible in the legend for multiclass models.

Documentation updates.

3.0.2 July 25, 2018

Documentation fixes.

3.0.1 July 19, 2018

Touchups to the documentation and code for rules.

3.0.0 July 10, 2018

Added the rpart.rules function to display a set of rules for a tree.

Numbers in the displayed tree will now be a little different for some models, because of the following changes:

(i) The new roundint argument.  With roundint=TRUE (default), we
display "nsiblings < 3" instead of "nsiblings < 2.5" if all values
of "nsiblings" in the training data are integers (where "nsiblings"
could be any variable in the tree, with R type "numeric" or "integer").
See Section 4.1 in the package vignette.
If roundint=TRUE and the data used to build the model is no longer
available, a warning will be issued.

(ii) When applying the digits argument in splits, if the last digit
is 5 we now always round up (rather than rounding to even).
Thus "x < 12.5" is now rounded to "x < 13" (rather than "x < 12",
which was misleading). The old behaviour was an artifact of the fact
that base::format rounds to even when the last digit is a 5.

Splits on variables of class "logical" are now displayed as "survived = 0" and "survived = 1". In previous versions they were displayed as "survived < 0.5" and "survived >= 0.5".

Added the clip.facs argument (default FALSE) to drop predictor names in splits on factors. For example, with clip.facs=TRUE, "pclass = 2nd,3rd" is displayed simply as "2nd,3rd". See Section 4.1 in the package vignette.

2.2.0 May 19, 2018

Added new option type=5 (puts the split variable name in the interior nodes).

Added new options extra=10 and extra=11.

Improved error messages for illegal values of extra.

Slightly raised right-hand split labels (type=3 and type=4) because they sometimes were too close to the node box beneath them.

The legend for multi-class models now includes all classes, even those classes which are never predicted by the model. Such classes have an "(unused)" suffix in the legend.

Documentation touch ups.

The vignettes are now compressed with gs and qpdf as in tools::compactPDF, (but that happens outside the standard CRAN build system). It does mean that the tar.gz file for rpart.plot is a little smaller (now 628 kByte).

2.1.2 Apr 20, 2017

Added dependency on R version 3.2.0 (necessary for use of anyNA).

The digits argument can now be negative, meaning use the standard R "format" function (with the absolute value of digits).

2.1.1 Feb 17, 2017

Added the BlGnYl palette.

2.1.0 Sep 26, 2016

Added the pal.thresh and arguments, and the show.prp.palettes function. Tweaked the colors in the palettes (among other issues, grays were too light in diverging palettes like RdGy). Box palettes specifying a vector of palettes like c("-Reds", "Blues") are now accepted.

The default for and split.labs is now NULL (instead of internal.node.labs and internal.split.labs). The default behaviour hasn't changed.

2.0.1 Jun 22, 2016

Using box.palette=0 now works more consistently.

2.0.0 Jun 10, 2016

The function rpart.plot now has different defaults, so it automatically creates a colored plot tailored to the type of model. This makes the function non backwards-compatible with earlier versions. The old rpart.plot function is still available under the name "rpart.plot.version1". The defaults for prp haven't changed.

Added the "auto" option to the "extra" argument.

Added the box.palette argument, a simpler way of coloring nodes than the box.col argument.

Using yesno=2 will print "yes" and "no" at all nodes (instead of just at the top).

Added the yes.text="yes" and no.text="no" arguments (so other languages can be used for the yes/no text.)

When snipping a tree, status messages are now printed on the screen.

We now better handle NAs in the fitted values. Nodes for NA predicted values are printed with cross hatching.

Merged the library source file lib.R with the earth and plotmo packages's lib.R.

1.5.3 Sep 30, 2015 We now deal correctly with the situation when the user has a variable named "text" in the current environment.

Minor updates for CRAN checks.

1.5.2 Feb 4, 2015 Added an example to the vignette based on a question on Stack Exchange. Unified some small utility funcs like printf with my other packages.

1.5.1 Dec 14, 2014 Removed link in the man pages to obsoleted package mvpart. Documentation touchups.

1.5.0 Nov 30, 2014 Updates to the documentation, mostly to satisfy CRAN recommendations. The slowtests postscript file is no longer included, to reduce package size.

1.4-5 Nov 19, 2014 Added an example to the vignette for wrapping long split labels over multiple lines. Added inst/slowtests/webpage-figs.R so user can regenerate the web page figures. Added bibliography to the vignette. Minor updates to the vignette and test scripts.

1.4-4 Feb 5, 2014 Removed use of ::: by removing outdated conversion from old-style rpart objects. This change was made mainly to satisfy CRAN checks.

Moved slow tests from the src/tests to the inst/slowtests directory.

1.4-3 Dec 20, 2012 Loosened sanity check in get.class.labs to allow for numerical error. Thanks for Sandrine Lunven for help with this issue.

Tweaked vignette to refer now to the rpart package vignette (instead of the old rpart reports).

1.4-2 Dec 15, 2012

Changed some code that was using "0" as a color.
Changed some code that was doing rep(NULL, n).
R 2.15-2 complains about the above, although previous versions
let them slip by.

1.4-1 Oct 24, 2012

Updates for compatibility with rpart_3.1-55 (R 2.15.2).

Updates to the vignette (extended section on compatibility
with plot.rpart,  added section on using, other

1.4-0 Oct 10, 2012

We now minimally access internal functions in the rpart package
(which are accessed using "rpart:::") and thus are now less
dependent on changes to those functions.

We now try harder to support rpart objects with "user" node lab funcs.

The vignette now has an appendix on mvpart objects.

1.3-0 Aug 15, 2012

There is now more white space in the split text (achieved by
adding white space to the default eq, lt, and ge args).
To revert to the old behaviour, explictly set these args.

Added the argument, invoked after each mouse click
when interactively trimming the tree.

Incorporated Gene Cutler's fix to get.class.labs (so we no longer
get an incorrect error message when case weights are used).

Added Josh Browning's heat tree example to the vignette.

Touch-ups for the new version of plotmo (1.3-2).

Removed unnecessary LICENSE file because rpart is now GSL-3.

1.2-2 Mar 31, 2011

Touch-ups for the new version of plotmo (1.2-6)

1.2-1 Mar 25, 2011

Touch-ups to the vignette.

1.2-0 Mar 24, 2011

Added the clip.left.labs argument.
Extended the vignette.

1.1-1 Mar 9, 2011

We now call the object's text() function unless the object
has a standard method ("anova", "class", "poisson" or "exp").
We now support mvpart::mrt objects

1.1-0 Mar 5, 2011

The prp.pdf file is now smaller, thanks to qpdf.
Made several miscellaneous touch-ups to docs and code.
Thanks to Jason Roberts for his feedback.

1.0-0 Feb 25, 2011

Initial release

Reference manual

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


3.0.6 by Stephen Milborrow, 4 months ago

Browse source code at

Authors: Stephen Milborrow

Documentation:   PDF Manual  

GPL-3 license

Depends on rpart

Suggests earth

Imported by DStree, HMP, MachineLearning, featurefinder, ibmdbR, rattle, regclass, semtree, statVisual, yorkr.

Suggested by CORElearn, LTRCtrees, LocalControl, aVirtualTwins, candisc, longRPart2, naniar, plotmo, tree.bins.

See at CRAN