New years greetings. I have been setting up a function to generate multiple jpeg charts. When the calls are issued at the interactive console, the jpeg files are generated without an issue. When I try to issue the same calls from a function, some chart files are empty. It appears to only be related to trellis charts. Any help to troubleshoot this is appreciated.
Regards, -mike R version 2.14.0 (2011-10-31) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-unknown-linux-gnu (64-bit) # validate devices > capabilities() jpeg png tiff tcltk X11 aqua http/ftp sockets TRUE FALSE FALSE FALSE TRUE FALSE TRUE TRUE libxml fifo cledit iconv NLS profmem cairo TRUE TRUE TRUE TRUE TRUE FALSE FALSE # Example functionality from the interactive console:::: # I am going to use a zone variable to help duplicate the code in the function > zone [1] "isoranp-z1" # call a function to pull in data and assign it to a data frame > testz<-get_zonedata_url(2011,51,zone) # validate the data frame > str(testz) 'data.frame': 2016 obs. of 14 variables: $ ts : Factor w/ 2016 levels "12/18/2011 00:00",..: 1 2 3 4 5 6 7 8 9 10 ... $ server : Factor w/ 1 level "phx1npf4sn2": 1 1 1 1 1 1 1 1 1 1 ... $ zone : Factor w/ 1 level "isoranp-z1": 1 1 1 1 1 1 1 1 1 1 ... $ pool : Factor w/ 1 level "ORA-S1": 1 1 1 1 1 1 1 1 1 1 ... $ cpucap : num 4 4 4 4 4 4 4 4 4 4 ... $ memcap : int 26 26 26 26 26 26 26 26 26 26 ... $ swapcap: int 26 26 26 26 26 26 26 26 26 26 ... $ cpu : num 78.2 206.8 198.4 366.4 112.1 ... $ poolsz : int 42 42 42 42 42 42 42 42 42 42 ... $ mem : num 75.5 75.3 75.6 74.5 74.3 ... $ swp : num 80.2 80.1 79.6 79 78.9 ... $ dates : chr "12/18/2011" "12/18/2011" "12/18/2011" "12/18/2011" ... $ times : chr "00:00:00" "00:05:00" "00:10:00" "00:15:00" ... $ dt :Classes 'chron', 'dates', 'times' atomic [1:2016] 15326 15326 15326 15326 15326 ... .. ..- attr(*, "format")= chr [1:2] "m/d/y" "h:m:s" .. ..- attr(*, "origin")= Named num [1:3] 1 1 1970 .. .. ..- attr(*, "names")= chr [1:3] "month" "day" "year" # set up a jpeg device > trellis.device(jpeg,file=paste("charts/",zone,".zone_util.jpg",sep="")) # call a function to generate the chart # the plot_zone_util function uses xyplot > plot_zone_util(testz) #close the device > dev.off() The jpeg file is generated as expected: (User and group has been removed) ls -l isoranp-z1.zone_util.jpg -rw-rw-r-- 1 <> <> 32123 Dec 31 16:13 isoranp-z1.zone_util.jpg # here is the plot_zone_util function for reference plot_zone_util <- function(zone_df){ xyplot(cpu~dt|server,data=zone_df,ylim=c(0,100), main=paste(zone_df$zone[1]," CPU (Blue) & Memory (Red) Util\n",zone_df$ts[1],"-",zone_df$ts[nrow(zone_df)],sep=""), xlab="date", ylab="utilization (%)", panel=function(x,y,subscripts){ panel.lines(x,y) panel.lines(zone_df$dt[subscripts],zone_df$mem[subscripts],col="red") }, as.Table=T, subscripts=T) } ############################################## # Try and do the same thing within a function::: > gen_zone_charts(zone,2011,51) # Note the zone_util.jpg file is zero length. It is a lattice chart. The other two charts generate ok. User and group has been removed. -rw-rw-r-- 1 <> <> 22376 Dec 31 16:20 isoranp-z1.zone_cpu.jpg -rw-rw-r-- 1 <> <> 18910 Dec 31 16:20 isoranp-z1.zone_mem.jpg -rw-rw-r-- 1 <> <> 0 Dec 31 16:20 isoranp-z1.zone_util.jpg # here is the gen_zone_charts function: > gen_zone_charts function(zone,year,wk){ data_frame<-get_zonedata_url(year,wk,zone) # this results in a 0 length file # i have tried using jpeg(), and trellis.device() with the same results #jpeg(file=paste("charts/",zone,".zone_util.jpg",sep="")) trellis.device(jpeg,file=paste("charts/",zone,".zone_util.jpg",sep="")) #uses xyplot - works fine being called from the console plot_zone_util(data_frame) dev.off() # this works ok jpeg(file=paste("charts/",zone,".zone_cpu.jpg",sep="")) # uses combination of boxplot and plot with a preceeding par() plot_zone_cpu(data_frame) dev.off() # this works ok jpeg(file=paste("charts/",zone,".zone_mem.jpg",sep="")) # uses combination of plot and plot with a preceeding par() plot_zone_mem(data_frame) dev.off() } [[alternative HTML version deleted]] ______________________________________________ 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.