Animate Data In Numbers

Animate Data In Numbers

This page describes how to animate modifications made to a chart, instead of applying them instantly.

A common optimization is to strip a number of frames from the animation data (aka sub-sampling or frame stripping). This is very destructive but can yield good memory savings. Since we know how much animated data we have and its relative footprint, we can compute ballpark numbers for how much smaller removing 70%, 50%, or 25% of our animated. For each column, find the number of rows in the table body (tbody), and create another array to store the table cell data; Then loop through each row and grab the data from each table cell (via the jQuery text function), and then add it to the table cell data array. Telling the story behind the data through animation goes a long way in holding on to the user’s attention for a long time. Static charts are just enough to convey the message without any suspense but adding animation to the chart just good enough to play with the emotions of the audience.

Contents

Overview

Google charts can animate smoothly in one of two ways, either on startup when you first draw the chart, or when you redraw a chart after making a change in data or options.

To animate on startup:

  1. Set your chart data and options. Be sure to set an animation duration and easing type.
  2. Set animation: {'startup': true} — setting this in your options will cause your chart to start with series values drawn at the baseline, and animate out to their final state.
  3. Call chart.draw(), passing in your data and options.

To animate a transition:

  1. Start with an already rendered chart.
  2. Modify the data table or options. Different chart types support different modifications; see Supported Modifications to learn what modifications are supported for what chart types.
  3. Specify the transition behavior using the animation option.
  4. Call chart.draw() on your chart to transition to the new values.

Here is a simple example which changes the single value presented in a bar chart upon each click on a button:

Supported Modifications

Support for different types of transitions differs from one chart to another. The different types of transitions are:

  • Changes to data table values only. The number of rows and columns is the same, and the columns maintain their original types and roles.
  • Addition or removal of columns (series).
  • Addition or removal of rows (categories).
  • Changes to chart options. Currently, options that will animate on change include:
    • the view window (vAxis.viewWindow.min, vAxis.viewWindow.max, hAxis.viewWindow.min, hAxis.viewWindow.max) — Changing the view window is useful for achieving 'zoom' and continuous 'drift' effects (see examples below)
    • vAxis.ticks and hAxis.ticks values
    • vAxis.gridlines.count and hAxis.gridlines.count
    • vAxis.direction and hAxis.direction
    • vAxis.baseline and hAxis.baseline
    • vAxis.logScale and hAxis.logScale
    • chart size (height and width)
    • chart area (chartArea.height, chartArea.width, chartArea.top, chartArea.left)
Modification TypeValid Chart Types
Value changes ScatterChart, LineChart, AreaChart, BarChart, BubbleChart, ColumnChart, CandlestickChart, SteppedAreaChart, ComboChart, Gauge
Adding/removing rowsScatterChart, LineChart, AreaChart, BubbleChart, ComboChart (with line/area series only)
Adding/removing columns ScatterChart, LineChart, AreaChart, BarChart, BubbleChart, ColumnChart, CandlestickChart, SteppedAreaChart, ComboChart
Modifying chart options ScatterChart, LineChart, AreaChart, BarChart, BubbleChart, ColumnChart, CandlestickChart, SteppedAreaChart, ComboChart

Transition behavior

Animate Data In Numbers
Name
animation.duration

The duration of the animation, in milliseconds. For details, see the animation documentation.

Default: 0
animation.easing

The easing function applied to the animation. The following options are available:

  • 'linear' - Constant speed.
  • 'in' - Ease in - Start slow and speed up.
  • 'out' - Ease out - Start fast and slow down.
  • 'inAndOut' - Ease in and out - Start slow, speed up, then slow down.
Default: 'linear'
animation.startup

Determines if the chart will animate on the initial draw. If true, the chart will start at the baseline and animate to its final state.

Default false

Events

When drawing a chart, a 'ready' event is fired once the chart is ready for external method calls.The chart will fire the animationfinishAnimate event when the transition is complete.
Name
animationfinish

Fired when transition animation is complete.

Examples

Value changes

Adding and removing rows

How To Animate Data In Numbers

Adding and removing columns

Changing the view window

Animate Data In Numbers For Mac

Changing the chart size