[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