[R] Help! I couldn't put multiple qplot on the same page...

Michael comtech.usa at gmail.com
Wed Dec 7 23:38:57 CET 2011


I found that if I run each "qplot" manually it would plot out something...

but if I put it into the loop,

it just doesn't work at all - sometimes it refused to plot anything...

On 12/7/11, Michael <comtech.usa at gmail.com> wrote:
> If I put a "windows()" in front of the qplot command in the above code
> and simply wanted to have each plot graphed on different pages...
>
>
> Six graph windows opened but none of them had any content...  they are
> all blank...
>
> What's the problem?
>
> Thx
>
> On 12/7/11, Michael <comtech.usa at gmail.com> wrote:
>> Hi all,
>>
>> I am stuck at ploting multiple graphs on one page. I don't why it doesn't
>> work.
>>
>> All the 6 plots are either exactly the same, or they simply don't plot
>> at all. I made sure that in each iteration the "datasub" and
>> "factorsub" are different ...
>>
>> Could you please help me?
>>
>> Thanks a lot!
>>
>> I did my homework and followed the following advice:
>>
>> http://stackoverflow.com/questions/1249548/side-by-side-plots-with-ggplot2-in-r
>>
>> my.multiplot <- function(..., plotlist=NULL, cols) {
>>     require(grid)
>>
>>     # Make a list from the ... arguments and plotlist
>>     plots <- c(list(...), plotlist)
>>
>>     numPlots = length(plots)
>>
>>     # Make the panel
>>     plotCols = cols                          # Number of columns of plots
>>     plotRows = ceiling(numPlots/plotCols) # Number of rows needed,
>> calculated from # of cols
>>
>>     # Set up the page
>>     grid.newpage()
>>     pushViewport(viewport(layout = grid.layout(plotRows, plotCols)))
>>     vplayout <- function(x, y)
>>         viewport(layout.pos.row = x, layout.pos.col = y)
>>
>>     # Make each plot, in the correct location
>>     for (i in 1:numPlots) {
>>         curRow = ceiling(i/plotCols)
>>         curCol = (i-1) %% plotCols + 1
>>         print(plots[[i]], vp = vplayout(curRow, curCol ))
>>     }
>>
>> }
>>
>>
>> My code is as below:
>>
>> ----------------------------
>>
>>
>> myplotlist=vector('list', 6)
>> nCount=0;
>>
>> for (j in myyears)
>> {
>> 	print(j)
>> 	nCount=nCount+1
>> 	
>>                     #...
>>                     # prepare datasub and factorsub for different j...
>>                     #...
>> 	tmp<-data.frame(as.double(datasub),as.numeric(factorsub))
>> 	tt=qplot(factor(as.numeric(factorsub)),as.double(datasub),data=tmp,geom
>> = "boxplot",ylab='Chg',xlab='Hours', main=j)
>> 	
>> 	myplotlist[nCount]=tt
>> 	
>> }
>>
>> my.multiplot(plotlist=myplotlist,cols=3)
>>
>



More information about the R-help mailing list