Try this:
xyplot(val ~ x, data = df, type = "p",
col = as.numeric(df$f1), pch = as.numeric(df$f2))
key1 <- list(border = TRUE, colums = 2, text = list(levels(df$f1)),
points = list(pch = 1:nlevels(df$f1))
)
key2 <- list(border = TRUE, colums = 2, text = list(levels(df$f2)),
points = list(pch = 20, col = 1:nlevels(df$f2))
)
trellis.focus("panel", 1, 1)
draw.key(key1, draw = TRUE, vp = viewport(.9, .9))
draw.key(key2, draw = TRUE, vp = viewport(.75, .9))
trellis.unfocus()
On 8/29/06, Laurent Rhelp <laurentRhelp at free.fr>
wrote:> Dear R-list,
>
> I would like to use the lattice library to show several groups on
> the same graph. Here's my example :
>
> ## the data
> f1 <-
factor(c("mod1","mod2","mod3"),levels=c("mod1","mod2","mod3"))
> f1 <- rep(f1,3)
> f2 <-
factor(rep(c("g1","g2","g3"),each=3),levels=c("g1","g2","g3"))
> df <- data.frame(val=c(4,3,2,5,4,3,6,5,4),
x=rep(c(1,2,3),3),f1=f1,f2=f2)
> #############################################################
> library(lattice)
>
> para.liste <- trellis.par.get()
> superpose.symbol <- para.liste$superpose.symbol
> superpose.symbol$pch <- c(1,2,3)
> trellis.par.set("superpose.symbol",superpose.symbol)
>
> # Now I can see the group according to the f1 factor (with a different
> symbol for every modality)
> xyplot( val~x,
> data=df,
> group=f1,
> auto.key=list(space="right")
> )
>
> # or I can see the group according to the f2 factor
> xyplot( val~x,
> data=df,
> type="l",
> group=f2,
> auto.key=list(space="right",points=FALSE,lines=TRUE)
> )
>
> How can I do to highlight both the f1 and f2 factors on one panel with
> the legends, using the lattice function ?
>
> Thanks
>
> ______________________________________________
> 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.
>