> 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
You do need to use xyplot() to get control of the x axis. In this example, the problem comes from not specifying the arguments names to panel.barchart. In ?panel.barchart, the third argument is box.ratio. The value of your groups was therefore used as the box.ratio and the widths of the boxes differed by group. Here is a complete working example, with fake data and without r and leg. digrate <- data.frame(Perc=runif(30), Drate=rep(letters[1:3], 10), hora=rep(c(1,2,3,6,8,10,15,20,24,30),each=3)) digrate xyplot(Perc~hora, ## as.POSIXct(hora,format="%d-%m-%Y %H:%M"), data=digrate, groups=digrate$Drate, ## key=leg, xlab="time of the day", scales=list(alternating=FALSE,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=groups, horizontal=FALSE, box.ratio=5, stack=FALSE, ...) }, main="xyplot" ) ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.