[R] lattice barchart using a time scale in x axis

Fran Velasco franvgls at gmail.com
Fri Feb 5 01:32:21 CET 2010


I'm trying to produce a barchart plot with groups, in which each group is placed in a particular 
time scale in x-axis. If I use barchart directly it does not take the time scale. I've tried with 
xyplot and adding a panel.barchart, I have the bars in the right place, but not the three groups I'm 
trying to produce. I've tried defining panel and panel.group, but can't get it to work
Drate is a numeric variable with three categories, perc a percentage of preys digested.

Script with barchart:
barchart(Perc~as.POSIXct(hora,format="%d-%m-%Y %H:%M"),digrate,groups=Drate,horizontal=F, key = leg,
   scales=list(alternating=F,tck=c(1,0),x=list(at=1:10,labels=format(seq(r[1],r[2],"hours"),
     format="%H:%M"))),
             panel=function(x,y,...) {panel.fill(col="white")
             panel.barchart(x,y,col=c("white","grey","black"),...)}
             )

SCript with xyplot:
xyplot(Perc~as.POSIXct(hora,format="%d-%m-%Y %H:%M"),digrate,groups=digrate$Drate,key=leg,xlab="time 
of the day",
 
scales=list(alternating=F,tck=c(1,0),x=list(at=seq(r[1],r[2],by="hour"),labels=format(seq(r[1],r[2],"hours"),format="%H:%M"))),
             panel=function(x,y,groups,...) {
         panel.fill(col="white")
         panel.barchart(x,y,groups,horizontal=F,box.ratio=1000,stack=F,...)}
       )

Fran



More information about the R-help mailing list