[R] "chemical" plot

Petr Pikal petr.pikal at precheza.cz
Wed Nov 6 16:38:08 CET 2002


Some time ago I coppied following script for plotting ternary 
graphs

#----------------------------------------------------------------------------
-----
# 
# Colin Farrow
# Computing Service, University of Glasgow, Glasgow G12 8QQ
# c.farrow at compserv.gla.ac.uk


tri<-
function(a, f, m, symb = 2, grid = F, ...)
{
 ta <- paste(substitute(a))
 tf <- paste(substitute(f))
 tm <- paste(substitute(m))

 tot <- 100/(a + f +m)
 b <- f * tot
 y <- b * .878
 x <- m * tot + b/2
 par(pty = "s")
 oldcol <- par("col")
 plot(x, y, axes = F, xlab = "", ylab = "", xlim = c(-10, 110), ylim
   = c(-10, 110), type = "n", ...)
        points(x,y,pch=symb)
 par(col = oldcol)
 trigrid(grid)
 text(-5, -5, ta)
 text(105, -5, tm)
 text(50, 93, tf)
 par(pty = "m")
 invisible()
}
"trigrid"<-
function(grid = F)
{
 lines(c(0, 50, 100, 0), c(0, 87.8, 0, 0))	#draw frame
 if(!grid) {
  for(i in 1:4 * 20) {
   lines(c(i, i - 1), c(0, 2 * .878))	#side a-c (base)
   lines(c(i, i + 1), c(0, 2 * .878))
   T.j <- i/2	#side a-b (left)
   lines(c(T.j, T.j + 2), c(i * .878, i * .878))
   lines(c(T.j, T.j + 1), c(i * .878, (i - 2) * .878))
   T.j <- 100 - i/2	#side b-c (right)
   lines(c(T.j, T.j - 2), c(i * .878, i * .878))
   lines(c(T.j, T.j - 1), c(i * .878, (i - 2) * .878))
  }
 }
 else {
  for(i in 1:4 * 20) {
# draw dotted grid
   lines(c(i, i/2), c(0, i * .878), lty = 4, col = 3)	#
   lines(c(i, (50 + i/2)), c(0, .878 * (100 - i)), lty = 4,
    col = 3)	# /
   lines(c(i/2, (100 - i/2)), c(i * .878, i * .878), lty
     = 4, col = 3)	# -
  }
  par(lty = 1, col = 1)
 }
}




On 6 Nov 2002 at 10:22, Christian Hoffmann wrote:

> Hi all,
> 
> May be there is a plot which shows 3 variables in a triangle, their
> sum being constant. I have forgotten its name, and a search in the
> engine using "plot" did not help.
> 
> Does anyone know of such a procedure in R or S?
> 
> Thank you
> --christian
> 
> Dr.sc.math.Christian W. Hoffmann
> Mathematics and Statistical Computing
> Landscape Dynamics and Spatial Development
> Swiss Federal Research Institute WSL
> Zuercherstrasse 111
> CH-8903 Birmensdorf, Switzerland
> phone: ++41-1-739 22 77    fax: ++41-1-739 22 15
> e-mail: christian.hoffmann at wsl.ch
> www: http://www.wsl.ch/staff/christian.hoffmann/
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
> -.-.-.-.- r-help mailing list -- Read
> http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help",
> or "[un]subscribe" (in the "body", not the subject !)  To:
> r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
> _._._._._

Petr Pikal
petr.pikal at precheza.cz
p.pik at volny.cz


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list