Skip to content

trellis.graphic in for-loop

5 messages · Alexander.Herr@csiro.au, Roger D. Peng, Deepayan Sarkar +2 more

#
Trellis graphics need to be print()-ed for them to show on the device.  I
think if you wrap your call to barchart() with print(), it should work as
you expect.

-roger
_______________________________
UCLA Department of Statistics
rpeng at stat.ucla.edu
http://www.stat.ucla.edu/~rpeng
On Fri, 4 Apr 2003, Alexander.Herr at csiro.au wrote:

            
#
On Friday 04 April 2003 12:04 am, Alexander.Herr at csiro.au wrote:
An explicit print() outside the barchart call. The result of barchart is a 
"trellis" object, which needs to be printed for anything to be plotted.

Deepayan
#
HI,

try to use 'print.trellis()'

Martina
-----------------------------
see:

library(lattice)
trellis.device(bg="white")
trellis.par.get("fontsize")->fontsize
fontsize$default<-16
trellis.par.set("fontsize",fontsize)

a<-c(1,2,4,5,4,3,3,3)
b<-c(2,5,1,1,1,3,3,3)
c<-c(3,5,1,2,2,5,5,5)
as.data.frame(cbind(a,b,c))->q21
varnames<-colnames(q21)
i<-9999
for (i in 1:3) {
  round(table(q21[,i])/sum(table(q21[,i])),3)*100->z1
  as.data.frame.table(table(q21[,i]))->z1
  round(z1[,2]/sum(z1[,2]),3)*100->z1[,2]
  colnames(z1)<-c(varnames[i],"y")
  xnames<-levels(z1[,1])
  paste(xnames[1]," - low",sep="")->xnames[1]
  paste(xnames[length(xnames)]," - high",sep="")->xnames[length(xnames)]
  z1[,1]<-xnames
  as.factor(z1[,1])->z1[,1]
  print.trellis(barchart(
           horizontal=FALSE,
           z1[,2]~z1[,1],
           ylab=list("% frequency",cex=1.5),
           main=list(varnames[i],cex=1.25),
           scales=list(1,cex=1.5), col="#ffd18f",
           sub=list("Rating",cex=1.25)
           ))
  filename<-paste("test",i,"_q21k.jpg",sep="")
                                        #dev.print(jpeg, filename ,
width=1000, height=1000, quality=100, bg="white", pointsize=20)
}


--------------------------------------------------------------------------
Department of Statistics             Office Phone: (614) 292-1567
1958 Neil Avenue, 304E Cockins Hall  FAX: (614) 292-2096
The Ohio State University            E-mail: pavlicov at stat.ohio-state.edu
Columbus, OH 43210-1247              www.stat.ohio-state.edu/~pavlicov
On Fri, 4 Apr 2003 Alexander.Herr at csiro.au wrote:

            
#
Martina Pavlicova <pavlicov at stat.ohio-state.edu> writes:
Actually the preferred approach is to use print(), not
print.trellis().  That is, call the generic function, not the specific
name of the method.  With namespaces, available in R-1.7.0 and later,
package authors have the option of hiding direct access to methods.
If Deepayan Sarkar added a namespace to the lattice package (and I
think he does plan to do that at some point) then using print() would
work as expected but using print.trellis() would no longer work.