Re: [R] Re creating Procrustes Plot in Lattice

From: Dylan Beaudette <dylan.beaudette_at_gmail.com>
Date: Wed, 30 Jul 2008 10:24:28 -0700

On Wednesday 30 July 2008, Gavin Simpson wrote:
> On Wed, 2008-07-30 at 04:59 -0700, Andrewjohnclose wrote:
> > Hi, I have been trying to create a function to generate a Procrustes
> > plot, generated from package "vegan"
> > in lattice.
> >
> > standard vegan code as follows
> > library(vegan)
> > pro=protest(P1, P8, permutations=4999,choices=1:4)
> > plot(pro)
> >
> > Now, here is the code for the function that I have failed to get to work
> > properly.
> >
> > panel.procrustes=function(x,y)
> > }Pro=protest(x,y,permutations=4999,choices=1:4)
> > Proplot=plot(Pro)
> > }
> > xyplot(P1[1:4]~P8[1:4],panel=panel.procrustes)
> >
> > I can generate an empty plot, but not much else - hope someone can help
> > and point out the obvious!
> >
> > Kind regards
> >
> > Andrew
>
> The obvious thing is that whole thing is wrong! ;-)
>
> What's wrong with the standard plot?

>
> You are trying to mix base (standard) graphics functions with
> grid/lattice graphics and this is not possible (well Ok there is package
> gridBase).
>
> You'll have to start doing the plotting from scratch in
> panel.procrustes. You might get some ideas of how to do this by looking
> at the ordixyplot functions and panel functions in current vegan that
> implement lattice graphics plots for ordiplot objects. I'm not
> sufficiently familiar with Lattice yet to advise how to go about
> producing a panel function, but the basic elements are:
>
> * draw the points from x$Yrot[, 1:2]
> * draw the arrows from x$Yrot[, 1:2] to x$X[, 1:2]
> * draw the origin - equivalent of abline(h = 0) and abline(v = 0)
> * draw the rotation involved in the Procrustes analysis: abline(0,
> tan(acos(x$rotation[1, 1])) and abline(0, 1/tan(acos(-x
> $rotation[1, 1]))
>
> So you'll need the Lattice equivalents of abline and then work out how
> to pass the X, Yrot and rotation components to your panel function. This
> is the bit I'm not clear on but look at ordixyplot and panel.ordi for
> inspiration.
>

Here is a relatively simple demonstration of creating a custom panel function:

http://casoilresource.lawr.ucdavis.edu/drupal/node/630

Cheers,

Dylan

-- 
Dylan Beaudette
Soil Resource Laboratory
http://casoilresource.lawr.ucdavis.edu/
University of California at Davis
530.754.7341

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Wed 30 Jul 2008 - 17:24:07 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 30 Jul 2008 - 17:32:58 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive