[Rd] triax.points() from package plotrix

Andreas Plank andreas.plank at web.de
Thu Jul 19 16:07:50 CEST 2007


Dear developers from package plotrix,

the function triax.points() from package plotrix does not draw any
points, because of internal setting in triax.points() {points(...,
type="l")}. 
I add a new option in triax.points() 
	point.type = "l", 
So the user can choose which type of points should be drawn.
May be other users already found this defect.

best whishes
Andreas Plank

####--- 8< ----#######
triax.points <- function (x,
  show.legend = FALSE,
  label.points = FALSE,
  point.labels = NULL,
  col.symbols = par("fg"),
  pch = par("pch"),
  bg.symbols = par("bg"),
  cc.axes = FALSE,
  point.type = "l", # new add
   ...
  )
{
    if (dev.cur() == 1)
        stop("Cannot add points unless the triax.frame has been drawn")
    if (missing(x))
        stop("Usage: triax.points(x,...)\n\twhere x is a 3 column array
of proportions or percentages")
    if (!is.matrix(x) && !is.data.frame(x))
        stop("x must be a matrix or data frame with at least 3 columns
and one row.")
    if (any(x > 1) || any(x < 0)) {
        if (any(x < 0))
            stop("All proportions must be between zero and one.")
        if (any(x > 100))
            stop("All percentages must be between zero and 100.")
        x <- x/100
    }
    if (any(abs(rowSums(x) - 1) > 0.01))
        warning("At least one set of proportions does not equal one.")
    sin60 <- sin(pi/3)
    if (cc.axes) {
        ypos <- x[, 3] * sin60
        xpos <- x[, 1] + x[, 3] * 0.5
    }
    else {
        ypos <- x[, 3] * sin60
        xpos <- 1 - (x[, 1] + x[, 3] * 0.5)
    }
    nobs <- dim(x)[1]
    if (is.null(point.labels))
        point.labels <- rownames(x)
    if (label.points)
        thigmophobe.labels(xpos, ypos, point.labels)
    if (show.legend) {
        legend(0.16 - 0.02 * max(nchar(point.labels)), 0.75 +
            0.04 * length(point.labels), legend = point.labels,
            pch = pch, col = col.symbols)
    }
    points(x = xpos, y = ypos, pch = pch, col = col.symbols,
        bg = bg.symbols, type = point.type, ...)
    invisible(list(x = xpos, y = ypos))
}



More information about the R-devel mailing list