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:
- Set your chart data and options. Be sure to set an animation duration and easing type.
- 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. - Call
chart.draw()
, passing in your data and options.
To animate a transition:
- Start with an already rendered chart.
- 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.
- Specify the transition behavior using the animation option.
- 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
andhAxis.ticks
valuesvAxis.gridlines.count
andhAxis.gridlines.count
vAxis.direction
andhAxis.direction
vAxis.baseline
andhAxis.baseline
vAxis.logScale
andhAxis.logScale
- chart size (
height
andwidth
) - chart area (
chartArea.height
,chartArea.width
,chartArea.top
,chartArea.left
)
- the view window (
Modification Type | Valid Chart Types |
---|---|
Value changes | ScatterChart, LineChart, AreaChart, BarChart, BubbleChart, ColumnChart, CandlestickChart, SteppedAreaChart, ComboChart, Gauge |
Adding/removing rows | ScatterChart, 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
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:
Default: 'linear' |
animation.startup | Determines if the chart will animate on the initial draw. If 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 theanimationfinish
event when the transition is complete. Name | |
---|---|
animationfinish | Fired when transition animation is complete. |