This function converts an animint plot.list into a directory of files which can be used to render the interactive data visualization in a web browser.
Usage
animint2dir(
plot.list,
out.dir = NULL,
json.file = "plot.json",
open.browser = interactive(),
css.file = "",
persistent_server = FALSE,
...
)
Arguments
- plot.list
a named list of ggplots and option lists.
- out.dir
directory to store html/js/csv files. If it exists already, it will be removed before writing the new directory/files.
- json.file
character string that names the JSON file with metadata associated with the plot.
- open.browser
logical (default TRUE if interactive), should R open a browser? If TRUE, we look at the animint.browser option to determine how. If it is set to "browseURL" then we use a file URL (be sure to configure your browser to allow access to local files, as some browsers block this by default). Otherwise (default) we use
servr::httd(out.dir)
.- css.file
character string for non-empty css file to include. Provided file will be copied to the output directory as styles.css
Examples
if(require('data.table'))setDTthreads(1)#for CRAN.
## Make a Gapminder plot (aka Google motion chart), which is actually
## just a scatterplot with size and color that moves over time.
library(animint2)
data(WorldBank)
gapminder <- list(
title="Linked scatterplot and time series",
ts=ggplot()+
make_tallrect(WorldBank, "year")+
geom_line(aes(year, life.expectancy, group=country, color=region),
clickSelects="country",
data=WorldBank, size=4, alpha=3/5),
time=list(variable="year",ms=3000),
duration=list(year=1000),
scatter=ggplot()+
geom_point(aes(fertility.rate, life.expectancy,
key=country, colour=region, size=population),
showSelected="year",
clickSelects="country",
data=WorldBank)+
geom_text(aes(fertility.rate, life.expectancy, label=country),
showSelected=c("country", "year"),
data=WorldBank)+
make_text(WorldBank, 5, 80, "year")+
scale_size_animint(pixel.range=c(2,20), breaks=10^(4:9)))
animint2dir(gapminder)
#> Warning: to ensure that smooth transitions are interpretable, aes(key) should be specifed for geoms with showSelected=year, problem: geom4_text_scatter
data(worldPop)
## Linked bar and line plots of world population by subcontinent,
## inspired by polychartjs.
popPlots <- list(
bars=ggplot()+
geom_bar(aes(x=subcontinent, y=population),
clickSelects="subcontinent",
showSelected="year",
data=worldPop, stat="identity", position="identity")+
## This make_text creates a geom_text that shows the current
## selected value of the year variable.
make_text(worldPop, 1, 3e6, "year")+
coord_flip(),
lines=ggplot()+
## This make_tallrect tiles the background of the lineplot with
## rects that can be clicked to select the year variable.
make_tallrect(worldPop, "year")+
## This geom_point does not have aes(clickSelects) so its alpha
## transparency behaves normally: all points have alpha=1/4.
geom_point(aes(year, population, colour=type),
data=worldPop, size=4, alpha=1/4)+
## This geom_line DOES have aes(clickSelects) so only the
## selected line has the specified alpha=3/4. The other
## unselected lines have 0.5 less (alpha=1/4).
geom_line(aes(year, population, group=subcontinent),
clickSelects="subcontinent",
data=worldPop, size=4, alpha=3/4))
animint2dir(popPlots)
## Make it animated by specifying year as the variable to animate and
## an interval of 2000 milliseconds between animation frames.
popAnim <- c(popPlots, list(time=list(variable="year",ms=2000)))
animint2dir(popAnim)
## Make the animation smooth by specifying a duration of 1000 ms for
## geoms with aes(showSelected=year).
popSmooth <- c(popAnim, list(duration=list(year=1000)))
animint2dir(popSmooth)
#> Warning: to ensure that smooth transitions are interpretable, aes(key) should be specifed for geoms with showSelected=year, problem: geom1_bar_bars