Skye                  package:MASS                  R Documentation

_A_F_M _C_o_m_p_o_s_i_t_i_o_n_s _o_f _A_p_h_y_r_i_c _S_k_y_e _L_a_v_a_s

_D_e_s_c_r_i_p_t_i_o_n:

     The 'Skye' data frame has 23 rows and 3 columns.

_U_s_a_g_e:

     data(Skye)

_F_o_r_m_a_t:

     This data frame contains the following columns:

     '_A' Percentage of sodium and potassium oxides

     '_F' Percentage of iron oxide

     '_M' Percentage of magnesium oxide

_S_o_u_r_c_e:

     R. N. Thompson, J. Esson and A. C. Duncan (1972) Major element
     chemical variation in the Eocene lavas of the Isle of Skye. _J.
     Petrology_, *13*, 219-253.

_R_e_f_e_r_e_n_c_e_s:

     J. Aitchison (1986) _The Statistical Analysis of Compositional
     Data._ Chapman and Hall, p.360.

     Venables, W. N. and Ripley, B. D. (2002) _Modern Applied
     Statistics with S._ Fourth edition.  Springer.

_E_x_a_m_p_l_e_s:

     # ternary() is from the on-line answers.
     ternary <- function(X, pch = par("pch"), lcex = 1,
                         add = FALSE, ord = 1:3, ...)
     {
       X <- as.matrix(X)
       if(any(X) < 0) stop("X must be non-negative")
       s <- drop(X %*% rep(1, ncol(X)))
       if(any(s<=0)) stop("each row of X must have a positive sum")
       if(max(abs(s-1)) > 1e-6) {
         warning("row(s) of X will be rescaled")
         X <- X / s
       }
       X <- X[, ord]
       s3 <- sqrt(1/3)
       if(!add)
       {
         oldpty <- par("pty")
         on.exit(par(pty=oldpty))
         par(pty="s")
         plot(c(-s3, s3), c(0.5-s3, 0.5+s3), type="n", axes=FALSE,
              xlab="", ylab="")
         polygon(c(0, -s3, s3), c(1, 0, 0), density=0)
         lab <- NULL
         if(!is.null(dn <- dimnames(X))) lab <- dn[[2]]
         if(length(lab) < 3) lab <- as.character(1:3)
         eps <- 0.05 * lcex
         text(c(0, s3+eps*0.7, -s3-eps*0.7),
              c(1+eps, -0.1*eps, -0.1*eps), lab, cex=lcex)
       }
       points((X[,2] - X[,3])*s3, X[,1], ...)
     }

     ternary(Skye/100, ord=c(1,3,2))

