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 <xieyihui at 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.gibbs at 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 at 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.
>
>