[R] wait for graph to finish plotting

news at aleblanc.cotse.net news at aleblanc.cotse.net
Thu Oct 28 19:27:51 CEST 2010


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()


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
> Details:-------------------------------------------------------
> Contact me: Tal.Galili at gmail.com |  972-52-7275845
> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
> www.r-statistics.com (English)
> ----------------------------------------------------------------------------------------------
>
>
>
>
> 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



More information about the R-help mailing list