[R] lattice - 2 graphs per panel with 2 differents colours

S Devriese sdmaillist at gmail.com
Sun Dec 13 13:04:10 CET 2009


On 12/11/2009 02:03 PM, PtitBleu wrote:
> Hello,
>
> I would like to get a lattice plot of 8 panels (unique(df$fact)=8) with 2
> graphs (df$y1 and df$y2 as a function of df$x) and 1 red point at (500,
> ymax) per panel.
>
> The script below is quite ok but I'm not able to define two different colors
> for the two graphs.
> If you have an idea how to use the "col" function in order to attribute the
> colors, it will be very kind of you to share it with a newbie.
>
> Have a nice week-end,
> Ptit Bleu.
>
>
> x11(15,12)
> xyplot(df$y1 + df$y1/df$coeff ~ df$x | df$fact,
> panel = function(x, y) {
>                 panel.grid(h=-1, v=-1, col="gray")
>                 panel.xyplot(x, y, type="p", pch=20)
>                 panel.points(500, ymax[panel.number()], col="red", pch=20,
> cex=1.6)
>                 },
>                  xlab="X", ylab="Y")
>
>   
If you add '...' to your panel function, it will allow the panel
function to use the info you did not provide explicitly:

panel = function(x, y, ...) {
                panel.grid(h=-1, v=-1, col="gray")
                panel.xyplot(x, y, type="p", pch=20, ...)
                panel.points(500, ymax[panel.number()], col="red", pch=20,
cex=1.6)
                },

I tested with:
library(lattice)
tmp <- data.frame(y1=11:20,coeff=1:10,x1=21:30)
xyplot(y1 + y1/coeff ~ x1, data=tmp,
       panel=function(x,y,...) {
         panel.xyplot(x, y, type="p", pch=20, ...)
       }

)

Stephan




More information about the R-help mailing list