Skip to content

vivekktiwari/animint2

 
 

Repository files navigation

animint2 provides an animated, interactive grammar of graphics

https://travis-ci.org/vivekktiwari/animint2.svg?branch=master

Installation

devtools::install_github("tdhock/animint2")

Usage

For animint2 usage examples, see our extensive set of test cases.

Another good reference is the Animint Designer Manual, which uses the old syntax. We eventually plan to port all of those examples to the new syntax.

Differences with old animint

This package is a redesign of animint with a cleaner syntax. In the old animint we had showSelected/clickSelects as aesthetics, and in animint2 they are now parameters.

This package contains all forked functions with a_* prefix. For eg: a_geom_point()

Consider the following example data viz, adapted from tests/testthat/test-renderer1-variable-value.R. The data set used to draw the blue line segments in the bottom plot looks like this:

> with(peak.problems, data.frame(selector.name=paste0(problem.name, "peaks"), problem.name, peaks, bases.per.problem))
             selector.name       problem.name peaks bases.per.problem
1  size.100.problem.1peaks size.100.problem.1     1               100
2  size.100.problem.2peaks size.100.problem.2     1               100
3   size.50.problem.1peaks  size.50.problem.1     1                50
4   size.50.problem.2peaks  size.50.problem.2     1                50
5   size.50.problem.3peaks  size.50.problem.3     1                50
6   size.50.problem.4peaks  size.50.problem.4     1                50
7  size.100.problem.1peaks size.100.problem.1     2               100
8  size.100.problem.2peaks size.100.problem.2     2               100
9   size.50.problem.1peaks  size.50.problem.1     2                50
10  size.50.problem.2peaks  size.50.problem.2     2                50
11  size.50.problem.3peaks  size.50.problem.3     2                50
12  size.50.problem.4peaks  size.50.problem.4     2                50
> 

and the old animint code looks like this:

geom_segment(aes(showSelected.variable=selector.name,
  showSelected.value=peaks,
  clickSelects=problem.name,
  showSelected2=bases.per.problem),
  data=peaks.dt)
  • In both animint and animint2, there are “selectors” which are variables in the interactive graphic that can change based on what you click on.
  • The aes(clickSelects) means that whenever you click on one of these segments, the problem.name selector will change. For example clicking the segment that is plotted for the first row of data will change problem.name to size.100.problem.1.
  • The aes(showSelected2) means that the only segments that will be shown are the ones which correspond to the current value of the bases.per.problem selector. For example the segment for the first row of data will only be shown if 100 is selected for the bases.per.problem selector.
  • The showSelected.variable and showSelected.value mean to show the segment only if the value of showSelected.value is the current selection of the showSelected.value selector. For example the segment for the first row of data will only be shown if 1 is selected for the size.100.problem.1peaks selector.

The new syntax uses parameters instead of a_aes, so is much more concise:

a_geom_segment(showSelected=c(selector.name="peaks", "bases.per.problem"),
 clickSelects="problem.name")

Both showSelected and clickSelects should be character vectors. Named elements of the character vector are interpreted as the old variable/value aes, and un-named elements are interpreted as the old clickSelects/showSelected aes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • R 92.5%
  • JavaScript 6.4%
  • HTML 1.1%