[R] loop and plot

Johannes Graumann johannes_graumann at web.de
Mon Oct 19 13:07:02 CEST 2009


Rene wrote:

> Dear all,
> 
> I am stuck at applying loop function for creating separated plots.
> 
> I have coding like below:
> 
> dataset.table <-
> 
table(data.frame(var1=c(1,2,3,1,2,3,1),colour=c("a","b","c","c","a","b","b")
> ))
> kk = function(f)
>              {
>               ls=as.character(f)
>               pie(dataset.table[ls,],main=ls)
>               box()
>              }
> 
> kk(1)
> kk(2)
> kk(3)
> 
> By using above code, I can create 3 single plot respectively, but when I
> type kk(1:3), obviously it will not work.
> 
> I know I have to vectorise the coding, then I can use command kk(1:3). I
> try to use loop:
> 
> kk = function(f)
>              {
>               ls=as.character(f)
>               for (i in length(f))
>               {
>               pie(dataset.table[ls[i],],main=ls[i])
>               box()
>               }
>               }
> kk(1:3)
> 
> the above code only gives me the last pie plot (ie. kk(3) plot) instead of
> 3 plots respectively.
> 
> Can someone please guide me how to revise the loop coding, and produce 3
> separated plots one after another on the screen by typing kk(1:3)?
> 
> Thanks a lot.
> 
> Rene.

Your code is probably doing what you want, but over-plotting the graphs so 
quickly, you only see the last one.

Inserting 
	readline("Hit <ENTER> to proceed.")
after your "box()" statement might give you what you want.

Joh




More information about the R-help mailing list