On Dec 22, 2012, at 12:34 PM, eliza botto wrote:

> 
> [if the format of my email is changed or is difficult to understand, a text 
> file is attached for easy understanding]Dear useRs,
> i was wondering that if its possible in R to automatically generate plots and 
> get it saved at the desired location? i have 
> data of cancer patients, from about 1000 cities around the world. i have 
> converted that data into a list (called tcp) and 
> that list has 1000 sublists. the sublists are named, according to the city 
> name. the orientation of the sublists are as 
> follow
> $ Tokyo
> month 2009    2010    20111   515     356     1212    444     145     1203    
> 478     147     1244    147     236     1245    785     142     1256    478   
>   111     4787    478     856     7858    147     786     4569    147     122 
>     12310   786     123     14711   123     787     25812   110     898     
> 369
> $ Nagoya 
> month 1955    1956    19641   512     444     7712    441     145     4703    
> 445     156     4744    145     236     7845    785     147     4456    447   
>   178     9887    478     980     8858    189     886     7869    145     722 
>     18310   756     123     16711   145     127     24812   110     128     
> 259
> what i wanted to do is the following
> 
> 1- drawing curve of each column in the sublist against the first column of 
> each sublist(month vs patients). 
> 2- drawing average curve of each city over the yearly curves. (for example, 
> for tokyo, overlay average curve of 2009,2010 
> and 2011 on already generated 3 curves).
> 3-saving the resulting diagram on a suitable location in my pc.
> i used the following commands for these three operations
>> jpeg("C:/world survey/ Tokyo.jpg")>matplot(tcp$ Tokyo[,-1], type = "l", 
>> col="grey", xlab="TIME(month)", 
>> ylab="patients")>apply(Tokyo,1,mean)>data.frame(Tokyo)>avgTokyo<-as.matrix(Tokyo,
>>  ncol=1)>lines(avgTokyo, lwd = 2)
> As as you can see that i have 1000 cities to work on, isnt there any other 
> suitable way of doing that??i am interested in knowing about "function" 
> command. because when i used the following command 
>> lapply(seq_along(tcp), function(i) matplot(tcp[[i]][,1],tcp[[i]][,-1], 
>> type="l",col="grey"))
> i did plot every city' diagram but didnt save it anywhere.
> Could you please guide me how to plot and save simultaneously all the firgure 
> in one go?

The 'pdf' function would allow you to make multi-page objects, arguably more 
useful than the startegy you are proposing. Or you could use your loop to 
construct names for 1000 separate jpeg files.

lapply( names(tcp), function(i) filnam <- paste0(i, ".jpg")
                                 jpeg(filnam)
                                  matplot(tcp[[i]][,1],tcp[[i]][,-1], 
type="l",col="grey")
                                  dev.off()
      )

If you didn't use the names you will not be able to recover them inside the 
function, since only the object itself is passed.
-- 

David Winsemius
Alameda, CA, USA

______________________________________________
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.

Reply via email to