On 8/19/05, Maciej Kalisiak <mkalisiak at gmail.com>
wrote:> I tend to prefer doing graphics in R using the lattice library. I'm
> "porting" some old scripts. Is there a nice way to get in
lattice the
> equivalent of the plot(type='h'), which is the high-density
> lines/histogram plot in base graphics package? I tried doing this
> with barchart(), but with limited success... the fact that I have
> ~1000 datapoints/bars causes problems, in that R insists on rendering
> a tick/label for each bar,
Yes, all (or most, at least) lattice functions will do that if the
variable is a factor or shingle (which barchart forces).
> and as far as I can tell the plot doesn't
> come out as accurate, due to running together of the bars (at least in
> plot(type='h') you are guaranteed that each bar/line is exactly one
> pixel wide)...
Your best bet is to coerce to numeric, and use xyplot, whose default
panel function honors type='h'. e.g.
xyplot(yield ~ as.numeric(variety) | site + year,
data = barley, type = 'h')
or for horizontal bars,
xyplot(as.numeric(variety) ~ yield | site + year,
data = barley, type = 'h', horizontal = TRUE)
Had too many labels not been a problem, you could also have used
barchart(as.numeric(variety) ~ yield | site + year,
data = barley, panel = panel.xyplot, type = 'h')
Deepayan