Learn R Programming

Ternary

'Ternary' is an R package that allows the creation of ternary plots (a.k.a. ternary graphs / simplex plots / Gibbs triangles / de Finetti diagrams) and Holdridge life zone diagrams using the familiar functions of the default 'graphics' package.

For simple use cases, generate ternary plots using the point-and-click Shiny app:

install.packages("Ternary")
Ternary::TernaryApp()

For greater control over your plots, use the R command line; usage instructions are available for Ternary plots (with an introductory vignette for R beginners), and for Holdridge plots.

Install the development version from GitHub with

devtools::install_github("ms609/Ternary", args = "--recursive")

This requires git to be installed and added to your PATH system environment variable. You may also require the 'curl' R package.

Please let me know of any feature requests or bugs by opening an issue on GitHub.

Citation

You can cite this package as:

Smith, Martin R. (2017). Ternary: An R Package for Creating Ternary Plots. Comprehensive R Archive Network, doi:10.5281/zenodo.1068996.

See also

The R package 'ggtern' implements ternary plots within the 'ggplot2' framework.

Please note that the 'Ternary' project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Copy Link

Version

Install

install.packages('Ternary')

Monthly Downloads

1,329

Version

2.3.4

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Martin R. Smith

Last Published

May 7th, 2025

Functions in Ternary (2.3.4)

TernaryContour

Add contours to a ternary plot
TernaryXRange

X and Y coordinates of ternary plotting area
TernaryPlot

Create a ternary plot
TernaryPointValues

Evaluate function over a grid
TriangleCentres

Coordinates of triangle mid-points
TernaryCoords

Convert ternary coordinates to Cartesian space
TernaryTiles

Paint tiles on ternary plot
TernaryApp

Graphical user interface for creating ternary plots
TernaryDensityContour

Add contours of estimated point density to a ternary plot
TriangleInHull

Does triangle overlap convex hull of points?
cbPalettes

Palettes compatible with colour blindness
XYToTernary

Cartesian coordinates to ternary point
.SetRegion

Set plotting region
holdridgeClasses

Names of the 38 classes defined with the Holdridge system
holdridge

Random sample of points for Holdridge plotting
ColourTernary

Colour ternary plot
AddToTernary

Add elements to ternary or Holdridge plot
Polygon-Geometry

Polygon geometry
HoldridgeHypsometricCol

Convert a point in evapotranspiration-precipitation space to an appropriate cross-blended hypsometric colour
ReflectedEquivalents

Reflected equivalents of points outside the ternary plot
Annotate

Annotate points on a ternary plot
OutsidePlot

Is a point in the plotting area?
HoldridgeToXY

Convert user-specified ternary coordinates into X and Y coordinates
Ternary-package

The 'Ternary' package allows the creation of ternary plots (a.k.a. ternary graphs / simplex plots / Gibbs triangles / de Finetti diagrams) using the familiar functions of the default 'graphics' package.
HoldridgePlot

Plot life zones on a Holdridge plot