| Rosling.bubbles {animation} | R Documentation |
In Hans Rosling's attractive talk “Debunking third-world
myths with the best stats you've ever seen”, he used a
lot of bubble plots to illustrate trends behind the data
over time. This function gives an imitation of those
moving bubbles, besides, as this function is based on
symbols, we can also make use of
other symbols such as squares, rectangles, thermometers,
etc.
Rosling.bubbles(x, y, data, type = c("circles", "squares", "rectangles", "stars",
"thermometers", "boxplots"), bg, xlim = range(x), ylim = range(y), main = NULL,
xlab = "x", ylab = "y", ..., grid = TRUE, text = 1:ani.options("nmax"), text.col = rgb(0,
0, 0, 0.5), text.cex = 5)
x,y |
the x and y co-ordinates for the centres of
the bubbles (symbols). Default to be 10 uniform random
numbers in [0, 1] for each single image frame (so the
length should be 10 * |
type,data |
the type and data for symbols; see
|
bg,main,xlim,ylim,xlab,ylab,... |
see
|
grid |
logical; add a grid to the plot? |
text |
a character vector to be added to the plot one by one (e.g. the year in Rosling's talk) |
text.col,text.cex |
color and magnification of the background text |
Suppose we have observations of n individuals over
ani.options("nmax") years. In this animation, the
data of each year will be shown in the bubbles (symbols)
plot; as time goes on, certain trends will be revealed
(like those in Rosling's talk). Please note that the
arrangement of the data for bubbles (symbols) should be a
matrix like A_{ijk} in which i is the
individual id (from 1 to n), j denotes the
j-th variable (from 1 to p) and k indicates
the time from 1 to ani.options('nmax').
And the length of x and y should be equal
to the number of rows of this matrix.
NULL.
Yihui Xie <http://yihui.name>
http://animation.yihui.name/da:ts:hans_rosling_s_talk
http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html
oopt = ani.options(interval = 0.1, nmax = ifelse(interactive(), 50, 2))
## use default arguments (random numbers); you may try to find the real data
par(mar = c(4, 4, 0.2, 0.2))
Rosling.bubbles()
## rectangles
Rosling.bubbles(type = "rectangles", data = matrix(abs(rnorm(50 * 10 * 2)), ncol = 2))
## save the animation in HTML pages
saveHTML({
par(mar = c(4, 4, 0.2, 0.2))
ani.options(interval = 0.1, nmax = ifelse(interactive(), 50, 2))
Rosling.bubbles(text = 1951:2000)
}, img.name = "Rosling.bubbles", htmlfile = "Rosling.bubbles.html", ani.height = 450,
ani.width = 600, title = "The Bubbles Animation in Hans Rosling's Talk", description = c("An imitation of Hans Rosling's moving bubbles.",
"(with 'years' as the background)"))
ani.options(oopt)