[R] Overlaying lattice graphs (continued)

hadley wickham h.wickham at gmail.com
Thu Jun 21 16:02:04 CEST 2007


Sebastian,

You should be able to, but I don't know how to do it with lattice.  In
ggplot (http://had.co.nz/ggplot2) you would do it as follows:

ggplot(mydata, aes(x = time, y = value, colour=model)) +
geom_point(subset(data, model != "observed")) +
geom_line((subset(data, model == "observed")) +
facet_grid(. ~ individuals)

or if you only wanted the models coloured:

ggplot(mydata, aes(x = time, y = value)) +
geom_point(subset(data, model != "observed"), aes(colour=model)) +
geom_line((subset(data, model == "observed")) +
facet_grid(. ~ individuals)

Although the way the panels are arranged is probably suboptimal if you
have many individuals.  It's something I plan to fix in the future, so
that  + facet_wrap(individuals) would give you a display like lattice
does.

Hadley


On 6/21/07, Sébastien <pomchip at free.fr> wrote:
> Hi Hadley,
>
> Hopefully, my dataset won't be too hard to changed. Can I modify the
> aspect of each group using your code (symbols for observed and lines for
> predicted)?
>
> Sebastien
>
> hadley wickham a écrit :
> > Hi Sebastian,
> >
> > I think you need to rearrange your data a bit.  Firstly, you need to
> > put observed on the same footing as the different models, so you would
> > have a new column in your data called value (previously observed and
> > predicted) and a new model type ("observed").  Then you could do:
> >
> > xyplot(value ~ time | individauls, data=mydata, group=model)
> >
> > Hadley
> >
> >
> > On 6/21/07, Sébastien <pomchip at free.fr> wrote:
> >> Dear R Users,
> >>
> >> I recently posted an email on this list  about the use of data.frame and
> >> overlaying multiple plots. Deepayan kindly indicated to me the
> >> panel.superposition command which worked perfectly in the context of the
> >> example I gave.
> >> I'd like to go a little bit further on this topic using a more complex
> >> dataset structure (actually the one I want to work on).
> >>
> >>  >mydata
> >>       Plot    Model    Individuals    Time        Observed
> >> Predicted
> >> 1    1        A           1                  0.05
> >> 10                    10.2
> >> 2    1        A           1                  0.10
> >> 20                    19.5
> >> etc...
> >> 10  1        B           1                  0.05         10
> >>          9.8
> >> 11  1        B           1                  0.10         20
> >>          20.2
> >> etc...
> >>
> >> There are p "levels" in mydata$Plot, m in mydata$Model, n in
> >> mydata$Individuals and t in mydata$Time (Note that I probably use the
> >> word levels improperly as all columns are not factors). Basically, this
> >> dataset summarizes the t measurements obtained in n individuals as well
> >> as the predicted values from m different modeling approaches (applied to
> >> all individuals). Therefore, the observations are repeated m times in
> >> the Observed columns, while the predictions appears only once for a
> >> given model an a given individual.
> >>
> >> What I want to write is a R batch file creating a Trellis graph, where
> >> each panel corresponds to one individual and contains the observations
> >> (as scatterplot) plus the predicted values for all models (as lines of
> >> different colors)... $Plot is just a token: it might be used to not
> >> overload graphs in case there are too many tested models. The fun part
> >> is that the values of p, m, n and t might vary from one dataset to the
> >> other, so everything has to be coded dynamically.
> >>
> >> For the plotting part I was thinking about having a loop in my code
> >> containing something like that:
> >>
> >> for (i in 1:nlevels(mydata$Model)) {
> >>
> >> subdata<-subset(mydata,mydata$Model=level(mydata$Model)[i])
> >> xyplot(subset(Observed + Predicted ~ Time | Individuals, data =
> >> subdata)       #plus additionnal formatting code
> >>
> >> }
> >>
> >> Unfortunately, this code simply creates a new Trellis plot instead of
> >> adding the model one by one on the panels. Any idea or link to a useful
> >> command will wellcome.
> >>
> >> Sebastien
> >>
> >> ______________________________________________
> >> R-help at stat.math.ethz.ch 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.
> >>
> >
> >
>



More information about the R-help mailing list