[R] wait for graph to finish plotting

David Winsemius dwinsemius at comcast.net
Thu Oct 28 19:54:04 CEST 2010


On Oct 28, 2010, at 1:27 PM, <news at aleblanc.cotse.net> wrote:

>
> pdf(file = "~/Dropbox/phd/results/graphs/TEST%03d.pdf")
> for (dataset in  
> c("breastCancer","pima","heartDisease","crx","ionosphere","votes"))
> {
>  p <- eval(parse(text=paste(dataset,"Probs",sep="")))
>  m <- melt(t(p))
>  title <- titles[[dataset]]
>  filename=paste("~/Dropbox/phd/results/ 
> graphs/",dataset,"Probs_barcharts.eps",sep="")
>  barchart(value~X1| 
> X2 
> ,data 
> = 
> m 
> ,origin 
> = 
> 0 
> ,layout 
> =c(1,10),scales=list(alternating=1,tck=c(0.6,0)),ylab="Difference  
> from test probabilities",xlab="Interval",col=c(rep("black", 
> 8),"red","white","blue"),main=title,ylim=c(-1,1))
> }
> dev.off()

Now you have changed plotting functions from plot and barplot over to  
barchart (a Lattice function) and were not aware of FAQ 7.22:

http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f

-- 
David.
>
>
> Tal Galili <tal.galili at gmail.com> writes:
>
>> Could you please paste the exact code you are using? (the one with  
>> the pdf and
>> dev.off, outside the loop )
>>
>> ----------------Contact
>>
>> On Sat, Oct 23, 2010 at 4:53 PM, <news at aleblanc.cotse.net> wrote:
>>
>>    David Winsemius <dwinsemius at comcast.net> writes:
>>
>>> On Oct 22, 2010, at 12:50 PM, <news at aleblanc.cotse.net> wrote:
>>>
>>>> Tal Galili <tal.galili at gmail.com> writes:
>>>>
>>>>> I suspect that using "dev.copy2eps" Is not going to help you here.
>>>>>
>>>>> Please try again using:
>>>>>
>>>>>  pdf(...)  # Check: ?pdf
>>>>>  for(i in something)
>>>>>  {
>>>>>     plot(things)
>>>>>  }
>>>>>  dev.off()
>>>>>
>>>>> But give pdf() the file path.
>>>>> Make sure you can make it work with simple plots.  then check it  
>>>>> on
>>>>> your
>>>>> situation, and let us know if it works :)
>>>>> (I had it work with very heavy plots - so I trust it will work for
>>>>> you)
>>>>>
>>>>> (p.s: please keep cc'ing the r-help list so others will know the
>>>>> stage of your
>>>>> problem, in case others would like to add more help :) )
>>>>>
>>>>> Cheers,
>>>>> Tal
>>>>>
>>>>
>>>> The problem is that the filename changes with each iteration of the
>>>> loop, so I need to
>>>> save the graph inside the loop.
>>>> I tried this:
>>>>
>>>> for(...)
>>>> {
>>>>    ...
>>>>    pdf(...)
>>>>    barplot(...)
>>>> }
>>>>
>>>> but I just got a load of empty graphs.
>>>
>>> Because you failed to follow Ted directions to use dev.off()
>>>
>>> pdf() just opens the file for writing, dev.off() executes the  
>>> writing
>>> and closes properly.
>>>
>>> --
>>> David.
>>    I just tried with dev.off() but still the same problem.
>>    I tried with pdf() and dev.off() inside the loop, and with them  
>> outside
>>    (pdf before the loop,
>>    and dev.off after). Same results each time: an empty pdf file.
>>    I am using R version 2.11.1 if this makes any difference.
>>    --
>>    aleblanc
> Hi Tal,
>
>
> -- 
> aleblanc

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list