Re: [R] dotplot (lattice) with panel.segments and groups

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Sat 08 Jul 2006 - 05:00:08 EST

Could you explain what panel.groups= does and what the difference is between panel.groups= and panel= ? In ?xyplot it just says:

panel.groups: useful mostly for 'xyplot' and 'densityplot'. Applies

          when 'panel' is 'panel.superpose' (which happens by default
          in these cases if 'groups' is non-null)

which indicates when it might apply but not what it does.

Also can we assume from the above that the panel=panel.superpose in your response could have been omitted?

Thanks.

On 7/7/06, Deepayan Sarkar <deepayan.sarkar@gmail.com> wrote:
> On 7/7/06, Sebastian Luque <spluque@gmail.com> wrote:
> > Hi,
> >
> > The following produces almost exactly what I needed. The problems are
> > that the 'panel.dotplot' call (commented) generates the error 'Error in
> > NextMethod("[") : argument "subscripts" is missing, with no default'.
>
> It's just as it says: panel.dotplot wants a 'subscripts' argument when
> 'groups' is not null, and you have forgotten to give it one.
>
> > The
> > other problem is that the colors alternate between the levels of the 'site'
> > variable, rather than 'year'.
>
> It's doing what it's being told to do. You probably want something like
>
> dotplot(site ~ yield | variety, data=barley,
> groups=year, yield2=barley$yield2,
> col=c("gray", "black"),
> panel = panel.superpose,
> panel.groups = function(x, y, subscripts, yield2, col, ...) {
> panel.xyplot(x, y, col = col, ...)
> panel.segments(x, y, yield2[subscripts], y, col = col)
> })
>
> Note that you don't want to use panel.dotplot here as it would draw a
> reference line both times. If you do want a reference line, add that
> in the panel function.
>
> The explicit use of 'col' should not have been necessary, i.e., the
> following should have worked:
>
> dotplot(site ~ yield | variety, data=barley,
> groups=year, yield2=barley$yield2,
> col=c("gray", "black"),
> panel = panel.superpose,
> panel.groups = function(x, y, subscripts, yield2, ...) {
> panel.xyplot(x, y, col = ...)
> panel.segments(x, y, yield2[subscripts], y, ...)
> })
>
> I believe this doesn't work because of a grid bug. I'll take that up
> in a separate thread.
>
> -Deepayan
>
> >
> >
> > barley$yield2 <- with(barley, yield + 5)
> >
> > dotplot(site ~ yield | variety, data=barley, groups=year,
> > yield2=barley$yield2, col=c("gray", "black"),
> > panel=function(x, y, subscripts, yield2, ...) {
> > ## panel.dotplot(x, y, ...)
> > panel.segments(x, as.numeric(y),
> > yield2[subscripts], as.numeric(y), ...)
> > })
> >
> > R> sessionInfo()
> > Version 2.3.1 (2006-06-01)
> > i486-pc-linux-gnu
> >
> > attached base packages:
> > [1] "methods" "stats" "graphics" "grDevices" "utils" "datasets"
> > [7] "base"
> >
> > other attached packages:
> > chron gmodels lattice
> > "2.3-3" "2.12.0" "0.13-8"
> >
> >
> > Can somebody please suggest how to properly make that 'panel.dotplot' call
> > and set the 'col' argument? Thanks in advance.
>
> ______________________________________________
> R-help@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
>



R-help@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 Received on Sat Jul 08 05:07:26 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 08 Jul 2006 - 08:15:25 EST.

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