On 3/29/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Full_Name: James Szinger
> Version: 2.4.1
> OS: linux and MacOS X
> Submission from: (NULL) (128.165.24.206)

Bugs in packages are supposed to go to package maintainers, not r-bugs.

> I'm trying to plot some data from the past 12 months and the lattice package 
> is
> not labeling the time axis correctly.  It shows only two labels instead of the
> expected 12.  The base graphics get it right.
>
> I think the problem is the commented-out line in formattedTicksAndLabels.Date 
> in
> lattice's axis.R:
>     ## z <- c(range, x[is.finite(x)])

Why do you think so? This has nothing to do with it.

> The following example demonstrates the problem:
>
> require(lattice)  #lattice_0.14-16
>
> x <- rnorm(12)
> t <- seq( as.Date("2006-04-01"),by="month", length=12)
>
> plot(x~t)      # Has labels "May", "Jul", "Sep", "Nov", Jan", "Mar"
> xyplot(x~t)    # Has labels "Jan", "Mar"

The problem is in the nuances of the algorithm used. You can trigger
the same behavior with base graphics by mimicking what's happening
internally in lattice:

> tt = lattice:::extend.limits(range(t))
> tt
[1] "2006-03-08" "2007-03-24"
> plot(range(x) ~ tt, xaxs = "i")

There is a fundamental difference in how base and lattice handle axis
annotation. In particular, base uses all the data to determine tick
positions, while lattice uses only the range. This is hard to change
given how lattice comes up with a common range combining different
panels. It might still be possible to get around this, but don't
expect a quick solution.

(You can of course specify tick positions explicitly using 'scales')

-Deepayan

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to