ternaryplot {vcd}R Documentation

Ternary diagram

Description

Visualizes compositional, 3-dimensional data in an equilateral triangle.

Usage

ternaryplot(x, scale = 1, dimnames = NULL, dimnames.position = c("corner","edge","none"),
            dimnames.color = "black", id = NULL, id.color = "black", coordinates = FALSE,
            grid = TRUE, grid.color = "gray", labels = c("inside", "outside", "none"),
            labels.color = "darkgray", border = "black", bg = "white", pch = 19, cex = 1,
            prop.size = FALSE, col = "red", main = "ternary plot", ...)

Arguments

x a matrix with three columns.
scale row sums scale to be used.
dimnames dimension labels (defaults to the column names of x).
dimnames.position, dimnames.color position and color of dimension labels.
id optional labels to be plotted below the plot symbols. coordinates and id are mutual exclusive.
id.color color of these labels.
coordinates if TRUE, the coordinates of the points are plotted below them. coordinates and id are mutual exclusive.
grid if TRUE, a grid is plotted. May optionally be a string indicating the line type (default: "dotted").
grid.color grid color.
labels, labels.color position and color of the grid labels.
border color of the triangle border.
bg triangle background.
pch plotting character. Defaults to filled dots.
cex a numerical value giving the amount by which plotting text and symbols should be scaled relative to the default. Ignored for the symbol size if prop.size is not FALSE.
prop.size if TRUE, the symbol size is plotted proportional to the row sum of the three variables, i.e. represents the weight of the observation.
col plotting color.
main main title.
... additional graphics parameters (see par)

Details

A points' coordinates are found by computing the gravity center of mass points using the data entries as weights. Thus, the coordinates of a point P(a,b,c), a + b + c = 1, are: P(b + c/2, c * sqrt(3)/2).

Author(s)

David Meyer
david.meyer@ci.tuwien.ac.at

References

M. Friendly (2000), Visualizing Categorical Data. SAS Institute, Cary, NC.

Examples

data(Arthritis)

## Build table by crossing Treatment and Sex
tab <- as.table(xtabs(~ I(Sex:Treatment) + Improved, data = Arthritis))

## Mark groups
col <- c("red", "red", "blue", "blue")
pch <- c(1, 19, 1, 19)

## plot
ternaryplot(
            tab,
            col = col,
            pch = pch,
            prop.size = TRUE,
            bg = "lightgray",
            grid.color = "white",
            labels.color = "white",
            main = "Arthritits Treatment Data"
           )
## legend
legend(0.7, 0.8,
       c("GROUP", rownames(tab)),
       pch = c(NA, pch),
       col = c(NA, col)
      )

data(Lifeboats)
attach(Lifeboats)
ternaryplot(
  Lifeboats[,4:6],
  pch = ifelse(side=="Port", 1, 19),
  col = ifelse(side=="Port", "red", "blue"),
  id  = ifelse(men/total > 0.1, as.character(boat), NA),
  prop.size = 2,
  dimnames.position = "edge",
  main = "Lifeboats on Titanic"
)
legend(
  0.8, 0.9,
  legend = c("SIDE", "Port", "Starboard"),
  pch = c(NA, 1, 19),
  col = c("black", "red", "blue"),
)

data(Hitters)
attach(Hitters)
colors <- c("black","red","green","blue","red","black","blue")
pch <- substr(levels(Positions), 1, 1)
ternaryplot(
  Hitters[,2:4],
  pch = as.character(Positions),
  col = colors[as.numeric(Positions)],
  main = "Baseball Hitters Data"
)
legend(
  0.8, 0.9,
  legend = c("POSITION(S)", levels(Positions)),
  pch = c("", pch),
  col = c(NA, colors)
)

[Package Contents]