R: Ternary Diagram

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", dimnames_rot = c(-60, 60, 0),
      id = NULL, id_color = "black",
      id_just = c("center", "center"),
      coordinates = FALSE, grid = TRUE, grid_color = "gray",
      labels = c("inside", "outside", "none"),
      labels_color = "darkgray", labels_rot = c(120, -120, 0),
      border = "black", bg = "white",
      pch = 19, cex = 1, prop_size = FALSE, col = "red",
      main = "ternary plot", newpage = TRUE, pop = TRUE,
      return_grob = FALSE, ...)

### 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.
`dimnames_rot` | Numeric vector of length 3, specifying the angle of the dimension labels.
`id` | optional labels to be plotted below the plot symbols. `coordinates` and `id` are mutual exclusive.
`id_color` | color of these labels.
`id_just` | character vector of length 1 or 2 indicating the justification 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.
`labels_rot` | Numeric vector of length 3, specifying the angle 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.
`newpage` | if `TRUE`, the plot will appear on a new graphics page.
`pop` | logical; if `TRUE`, all newly generated viewports are popped after plotting.
`return_grob` | logical. Should a snapshot of the display be returned as a grid grob?
`...` | 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@R-project.org

### 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 = "Arthritis Treatment Data"
               )
    ## legend
    grid_legend(0.8, 0.7, pch, col, rownames(tab), title = "GROUP")

    ## Titanic
    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"
    )
    grid_legend(0.8, 0.9, c(1, 19),
      c("red", "blue"), c("Port", "Starboard"),
      title = "SIDE")

    ## Hitters
    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"
    )
    grid_legend(0.8, 0.9, pch, colors, levels(Positions),
      title = "POSITION(S)")

[Package vcd version 1.4-4 Index]