Hi, saveSWF() (and other save*() functions) will only record the plots by *high-level* plotting commands, and this is because most graphics devices can only record high-level plots by default. In your animation code, there is actually one plot generated, and the rest are produced by low-level plotting commands like text() and points() - they will not get recorded. So you have to draw the whole plot again by plot(...) inside the loop. Here is a simple example:
x = runif(10) y = runif(10) # you can see the animation in the graphics window # but only one image file is generated at last plot(0:1, 0:1) for (i in 1:10) { points(x[i], y[i]) Sys.sleep(0.1) } # this is equivalent to the above animation # but 10 image frames are generated in the end for (i in 1:10) { plot(0:1, 0:1) points(x[1:i], y[1:i]) Sys.sleep(0.1) } Regards, Yihui -- Yihui Xie <xieyi...@gmail.com> Phone: 515-294-6609 Web: http://yihui.name Department of Statistics, Iowa State University 3211 Snedecor Hall, Ames, IA On Wed, Dec 23, 2009 at 9:59 AM, Zd Gibbs <zd.gi...@yahoo.com> wrote: > Hi, > I want to be able to save the following animated plot as a flash. There are > ultimately 6 plots, but when I run this and save it as a flash all I get is > the last (6th) plot, not all six different plots in order by "year". I’ve > tested the flash commands and they work; so it has to be my function code. I > am guessing that the problem has something to do with overlaying the plot > points, but I don’t know how to rewrite it and keep the animated elements. > I am running R version 2..9.2 on Windows Vista. > > Data looks like this: > > service usage amount year > transport 11.33105 15.75016 2004 > transport 11.38398 15.82374 2005 > transport 11.44057 15.90239 2005 > > Thanks! > > ZdGibbs (I can provide a subset of the data as .txt if necessary). > > #####order service year in ascending order and set frame options > library(animation) > library(lattice) > service <- service[order(service$year), ] > oopt = ani.options(interval = 1.0) > > ##### create the function > > Service <- function (...) > { > > interval = ani.options("interval") > index <- unique(service$year) > > plot(amount~usage, data=service, type="n", xlab = " ", ylab = " ", bty="l", > ylim=c(0,500)) > > legend("topright", legend=c("Transport", "Family", "Housing", "Substance > Use", "Medical", "Mental Health"), pch=c(19,19,19,19,19,19), col=c("#7FC97F", > "#BEAED4", "#FDC086", "#FFFF99", "#386CB0", "#F0027F"), bty="n", inset=.02) > > for (i in 1:length(index)) { > rect(11.4, 425, 11.9, 500, col="white", border="red") > > year.service <- service[which(service$year==index[i]),] > > graphics <- year.service[year.service$service=="Graphics",] > > trans <- year.service[year.service$service=="transport",] > fam <- year.service[year.service$service=="family",] > hous <- year.service[year.service$service=="housing",] > subuse <- year.service[year.service$service=="subuse",] > med <- year.service[year.service$service=="genhealth",] > menhlth <- year.service[year.service$service=="mental health",] > > text(mean(range(service$usage, na.rm=TRUE)), 455, index[i], col = rgb(0, 0, > 0, 0.5), cex = 4) > points(amount~usage, data=trans, pch=19, col="#7FC97F") > points(amount~usage, data=fam, pch=19, col="#BEAED4") > points(amount~usage, data=hous, pch=19, col="#FDC086") > points(amount~usage, data=subuse, pch=19, col="#FFFF99") > points(amount~usage, data=med, pch=19, col="#386CB0") > points(amount~usage, data=menhlth, pch=19, col="#F0027F") > > Sys.sleep(interval) > > } > > } > #####run animation > Service() > > #####save as flash > oopt = ani.options(nmax = 6, interval = 1.0) > saveSWF(Service(), interval = 2.0, swfname="place.swf", dev = "pdf", > filename="Pplot", fmt = "%03d", outdir = getwd(), swftools="C:/Program > Files/SWFTools") > ani.options(oopt) > > > > [[alternative HTML version deleted]] > > > ______________________________________________ > 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. > > ______________________________________________ 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.