[R] impose points on lattice plot
Deepayan Sarkar
deepayan.sarkar at gmail.com
Tue Mar 27 19:48:56 CEST 2007
On 3/27/07, Sundar Dorai-Raj <sundar.dorai-raj at pdf.com> wrote:
>
> Luis Ridao Cruz said the following on 3/27/2007 6:15 AM:
> > R-help,
> >
> > I'm using the lattice package to plot 2 variables (vekt ~ aldur)
> > conditioned to a third (kyn * 2 categories).
> >
> > I use the following:
> >
> > xyplot(vekt ~ aldur|kyn, , data = sexSu)
> >
> >
> > I want to superimpose the average(vekt) by 'aldur'
> > conditioned to kyn by using something like:
> >
> > xyplot(vekt~aldur|kyn, subset = aldur <= 12
> > , data = sexSu, panel = function(x, y)
> > {
> > panel.xyplot(x, y)
> > panel.points(x,mean(y),col=2,cex=2 )
> > })
> >
> >
> > but th output is just a horozontal line ( the average of 'vekt')
> > in both panels I guess)
> >
> > How can be done?
> >
> >
>
>
> An working example would be nice. But here's one possible solution if I
> understand your question correctly:
>
> xyplot(vekt~aldur|kyn, subset = aldur <= 12
> , data = sexSu, panel = function(x, y)
> {
> panel.xyplot(x, y)
> mx <- sort(unique(x))
> my <- tapply(y, x, mean)
> o <- order(mx)
> panel.points(mx[o],my[o],col=2,cex=2 )
> })
Yes, and since this calculation is already implemented in
'panel.linejoin', you could alternatively try
xyplot(vekt~aldur|kyn, subset = aldur <= 12,
data = sexSu, panel = function(x, y, ...) {
panel.xyplot(x, y, ...)
panel.linejoin(x, y, fun = mean, horizontal=FALSE, col = "black")
})
or even more conveniently (thanks to the 'type' argument in panel.xyplot),
xyplot(vekt~aldur|kyn, subset = aldur <= 12,
data = sexSu, type = c("p", "a"))
-Deepayan
More information about the R-help
mailing list