The Google Visualization API
Release Process and Release Candidates

We release the Visualization API in two steps:

One week before we release a new official version of the Visualization API,
we will release a preliminary version, called a Release Candidate (RC). This
is to test for any breaking changes in the release. We will issue a notification
to the Visualization
API developer discussion group and monitor that group for reported issues,
attempting to fix any backward compatibility problems reported.

One week after the RC release it will be released as the new, official release,
if we are able to resolve all reported backward compatibility problems.

We encourage you to test your applications against each RC as soon as possible,
and report any issues you have, to help us release a stable product.

While the Visualization API team thoroughly tests each new version, we realize
that bugs may still exist in any new release. The objective of this two-step process
is therefore to improve the reliability of the API for production systems.

Release Candidate Announcements

We will announce each new release candidate by emailing the
Visualization
API developer discussion group. If you're using the Visualization API for
any serious applications, we highly recommend that you join this discussion group.

To help you find or filter these emails, each release announcement will have the
same subject: "Release Candidate Pushed: <DATE>", where <DATE> is
the push date. This email will include these usage instructions. New features will
not be documented in detail, because the target of the release candidate is not
to test the new features, but rather to test that the release does not break existing
features. Detailed documentation of all the new features will be released with
the production version.

How to Use the Release Candidate

The release candidate package version is "upcoming", in contrast to the production
version which is "current". (Note that these names
will not change with future releases.)

You can load either the production or the release candidate (but not both at once),
depending on your version number, as shown here:

Reporting Bugs

Visit our Known
Issues page if you encounter a possible bug in Google Charts.
Before filing a bug, please check your code to be sure that it's really a bug
(post questions to the mailing
list for additional help), then search the known issues page to see whether
it has already been filed, or resolved.

If you discover any issues in the release candidate, you should send a message
to the Visualization API developer discussion group with the details of the problem.
The Visualization API team monitors this group during the release candidate period
in order to be extra responsive during that time.

Official Releases

When you load Google Charts, you have a few options. Normally, it's
done like so:

The 'current' string means that the current stable version of
Google Charts will be loaded. If you want to get the cutting-edge, proposed candidate release
version before it becomes the next 'current' version, use 'upcoming'
instead. Whichever of these versions you specify, you will see improvements over time as we
update them.

On July 28, 2015, we announced frozen versions. These are
releases of Google Charts that will remain unchanged forever (modulo
the occasional critical fix). The first frozen release was 41
corresponding to our February 23, 2015 release.

Current: October 1, 2018

Available in quasi-perpetuity as Frozen Charts Version 46

Corecharts

Ticks and Gridlines

Several changes were made to the axis tick and gridline generation to allow
tighter packing of ticks that don't overlap.

Minor gridlines are even more dynamic now since the appropriate number of
minor gridlines depends on the interval between the major gridlines and
available space.
The default now is to always show minor gridlines, if they fit. Specify
{ minorGridlines: { count: 0 }} to force no minor gridlines, or
{ minorGridlines: { count: 1 }} to enable minor gridlines.
The minorGridlines.count option otherwise has no meaning.

The color of minor gridlines will default to 'none' if the major gridlines color
is 'none'.

Many improvements to gridlines and tick labels for
the log and mirrorLog scales.

Allow negative slanted angle, to slant the 'other' way.

Generation of gridlines, minorGridlines, and ticks now determines the number
and spacing of gridlines based on other options besides the count.
If you specify a number for gridlines.count,
it will be used only as a rough approximation.

New gridlines.minSpacing and minorGridlines.minSpacing
options let you specify the minimum screen space between major gridlines in pixels.
Default for major gridlines is 40 for linear scales, 20 for log scales.
For minorGridlines, the default minSpacing is 1/2 the minSpacing of major gridlines
for linear scales, and 1/5 the minSpacing for log scales. If you specify the count
and not minSpacing, the minSpacing is computed from the count. And conversely,
if you specify the minSpacing and not the count, the count is computed from the
minSpacing.

New gridlines.interval option lets you specify an array of
sizes (as data values, not pixels) of the gridlines and minorGridlines.
This option is only for numeric axes at this time,
but it is analogous to the gridlines.units.<unit>.interval
options which are used only for dates and times.

For linear scales, the default is
{ gridlines: { interval: [1, 2, 2.5, 5] } }
which means the gridline values can fall on every unit (1), on even units (2),
or on multiples of 2.5 or 5. Any power of 10 of these values is also
considered (e.g. 10, 20, 25, or 50).
For minor gridlines, the default is
{ minorGridlines: { interval: [1, 1.5, 2, 2.5, 5] } }.
The minor gridline interval that is chosen will always be an even divisor
of the chosen major gridline interval.

New options for gridlines.multiple and
minorGridlines.multiple,
which specify that gridline and tick values must be a multiple of this
option's value. So you can force ticks to be integers by specifying
gridlines.multiple = 1.

Gridlines will now be rejected if formatted tick labels for
numbers would be duplicated, so you can specify format:"#"
if you want to only show integer ticks.

When the explicit 'ticks' option is used, we now expand the viewWindow to
include explicit ticks, if outside the data range.
Explicit viewWindowmin or max options
can override. This is a change to the previous behavior which acted more like
'maximized' mode with explicit ticks.

When the viewWindowMode is pretty, which is the default
for target axes, the viewWindow is now expanded to the nearest major gridline for
numbers, or the nearest minor gridline for dates and times.

Formatting

Number format for 'short' and 'long' patterns now use 3 significant digits.

Timeofday values will now be formatted using 24 hour ('HH') values by default
instead of 12 hour ('hh') values.

Explicit formats for dates and times will now override 'unit' formats.

Fix for explorer mode, which broke after redrawing the chart.

Histogram chart

Domain axis gridlines and baseline default color is 'none'.

Generate buckets using tick generation algorithm.
Default number of buckets is computed using a new
histogram.numBucketsRule option.
Possible values are 'sqrt', 'sturges', and 'rice'.
See https://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width

ColumnChart and BarChart

Fixed detection of minimum bar size (the difference between adjacent values)
to work with dates and times.

Respect properties in datatable columns.

Fix accessibility labels when sorting is enabled.

Gantt Chart

Fix selection object to include row index.

January 6, 2017

Available in quasi-perpetuity as Frozen Charts Version 45.1

Corecharts

Fix to avoid failures when chartArea.bottom and .right
options are too large.

Gantt Chart

Now returns row property for selected items.

September 12, 2016

Available in quasi-perpetuity as Frozen Charts Version 45.

Loader changes:

Support multiple calls of google.charts.load

ChartWrapper
instances can be called with a dynamically loaded chartType.

The GeoChart and
Map chart no longer require you to
include the jsapi loader. There is a new mapsApiKey loader setting to
let you specify your own key, rather than get the default behavior which may result in
occassional throttling of service.

Flash-based charts:

For GeoMap and MotionChart, the swfobject.js has been updated to use the latest version 2.2.
There should be no visible changes in chart features due to this update.

For AnnotatedTimeline, we are now replacing it with the
Annotation Chart,
which has been under development for a couple years, and appears stable.
Almost all the features of the AnnotatedTimeline should apply to the AnnotationChart
with no changes required in your code, although the look and feel is different.
The AnnotationChart uses no flash code, and is built on top of the Corecharts,
ChartRangeFilter, and Table chart.

Corecharts:

Fixed certainty role so it works correctly with custom styles.

Make accessibility table hide properly in rtl containers.

Fix startup animation when used with ChartWrapper.

Fix animation of discrete values that swap places.

Construct Dates regardless what day of the month it is.

Fix relative stacked area chart colors.

Fix ColumnChart with log scale and 0 or negative values.

Calendar:
Now uses more than two colors from the colorAxis.colors array option when
colorAxis.values is unspecified. The behavior should be more like what happens
in the GeoChart, where the inflection points are spread evenly throughout the gradient.

Material Charts:
Fixed convertOptions for Material charts to use the background color correctly.

You can now disable interactivity for markers.

Better color handling.

Deprecated string color column and added support for style columns to replace it.

Table Chart:
The pagingButtons option now works in more combinations with
page, pageSize, and startPage options.

Material charts (Bar, Line, and Scatter, so far):
Fixed a number of bugs with redrawing charts and multiple charts on a page.

Annotation Chart:
The date and time format for range selector is now the same
as for the main chart.

April 30, 2015

Available in quasi-perpetuity as Frozen Charts Version 42.

Corecharts

ColumnChart, BarChart, AreaChart, and SteppedAreaChart now support isStacked: 'percent' (for scaling to 100% of data for each category) and isStacked: 'relative' (for scaling to the range 0..1)

For all corecharts, the default baseline for axes will no longer be at the edge of the chart. The default baseline value of 0 will be used for numeric axes, but for backward compatibility with existing charts, it won’t automatically be included in the chart unless it is "close enough" to the data. You can force inclusion of the baseline just by adding baseline: 0 to your options. For date and datetime axes, there is no default baseline, but you can specify one if you would like.

Corechart legends use line, area, and point style corresponding to each series.

All text options for corecharts now support the opacity option.

The webfont loader will be used to load unknown fonts, which could cause your chart drawing to be delayed. Font names are case-insensitive.

Startup animation now works with DataViews, and when combined with the async drawing mode.

Fix the clearChart method when used before the chart was first drawn.

Added a pointsVisible option for top-level, series, and trendlines. This option controls whether points should be visible by default. This allows you to change the pointSize while keeping the points hidden.

HTML tooltip position is fixed.

The Scatter Chart now works with a discrete domain axis, and supports annotations.

Sankey

You can now select nodes. This can be enabled by setting sankey.node.interactivity to true.

Adding the ability to specify Sankey interactivity via the chart options. Options are generally specified under the style of whatever is being specified, by adding an object with modified style attributes at one of the following keys: 'selected', 'focused', 'unselected', 'unfocused'.

Colors

Sankey now supports the 'style' role

Nodes can now be colored uniquely by setting the option sankey.node.colorMode to 'unique'

Links can now be colored. The coloring mode can be changed with the sankey.link.colorMode option. Valid values are:

'unique': each link gets its own color.

'source': each link uses the color of its source node.

'target': each link uses the color of its target node.

'gradient': each link is colored by a gradient that goes from the color of its source node to the color of its target node.

NOTE: If node coloring is set to the default or the palettes for nodes and links are different, 'source', 'target', and 'gradient' will use the colors that would be assigned to the nodes if the colorMode was 'unique' and links and nodes shared a palette.

The color palette for the nodes may now be changed via sankey.node.colors.

The color palette for the links may now be changed via sankey.link.colors.

Default tooltips (both HTML and SVG) can now be generated by links and custom tooltips are supported via the 'tooltip' role.

Timeline

SVG tooltips are now supported.

Custom tooltips are now supported.

Colors will cycle if more are required than available.

Calendar

SVG tooltips are now supported.

Custom tooltips are now supported.

Trendlines

The pointsVisible option is now supported.

Table chart

'width' and 'height' options may either be unspecified, meaning the table should shrink as much as possible, or '100%', meaning the table should expand as much as possible.

Removed duplicate table used for frozen table header.

Frozen columns, useful when you have more columns than will fit within available width. For example, the leftmost 2 columns may be frozen with 'frozenColumns': 2.

Specify the number of paging buttons with the 'pagingButtons': # option. The number of rows per page will be based on that, unless you also specify the 'pageSize' option.

The 'rtlTable' option now works with paging or scrolling, but not (yet) with frozenColumns.

Renamed some css classes (e.g. 'content') to avoid conflicts.

Column headers now do not wrap by default.

Material charts(At the moment there are Material versions of the Bar, Line, and Scatter Charts.)

Better support for date, datetime, and timeofday axes.

Fix sizing problems with multiple charts on the same page.

May now be used with ChartWrapper.

Annotation Chart

Fixes for selecting annotations and color of range selector.

Allow the Annotation Chart to specify the order of annotations table, using the table.sortAscending option.

Map

A set of coordinates is no longer ignored if the latitude/longitude values are 0.

February 23, 2015

Available in quasi-perpetuity as Frozen Charts Version 41.

Core charts

Startup animations for most corecharts: add startup:true to animation option.

Add clearChart() to several charts that were missing this function.

Vertical axis ticks positioned inside the chart area can now use entire chartArea.width.

Fixed: join() & group() functions no longer empty column ids

Fixed: Afghanistan marker appears in Pakistan in Mac Safari

Fixed memory Leaks in various charts

GeoChart now supports all the tooltip features that corecharts support

CoreCharts click on value now selects or deselects correct data value when reverseCategories is true

DefaultColor is now an option

Fixed: Animations that change the axis type from/to a date axis will error out

Fix leaking listeners issue with native event targets

Data opacity for points now supported

Fixed: ColumnChart, BarChart, and CandlestickChart with continuous domain axis splits bars in half on low and high ends of axis

vAxis:{logScale:true} no longer errors when there are NaNs in the data

Fixed: When vAxis.logScale is true, vAxis.maxValue seems to act like vAxis.gridlines.count

Fixed: minValue and maxValue set to 0 are ignored, with variable number of gridlines (when gridlines.count == -1)

Allow viewWindow.max and viewWindow.min to work with ticks

Fixed axis date formatting

"Move & Resize" option now responds appropriately

Horizontal axis with slantedText now offsets text to keep it centered under tick value

Changing baseline with min max view window does not behave properly for some of the charts

Added support for createTextOnLineByAngle

Timeline chart now shows daily data

Geochart markers size does not change when Min axis value is set

Fixed missing tooltip title when there is no bar label

Added some events (but not the full set) to Timeline

Added enableInteractivity for Timeline

Formatted explicit tick values no longer ignored in compiled mode

Single row of data no longer causes errors with bar-like charts

arrayToDataTable now allows first row headers to specify objects

Support dataTableFromCsv

Candlestick chart no longer fails when the number of rows exceeds the available width to display all the candlesticks

Axis charts with zero rows of data and variable number of gridlines no longer cause infinite loop

Timelines no longer error out on reasonable data

Math.floor(x) === x no longer has nondeterministic result

Trendline now works for Spark chart

Fixed error display for Bar chart

Made an option for Z order for Series

Fixed SansSerif font bug

Fixed exceptions caused by current corechart code

Image-after-next now animates smoothly, instead of appearing abruptly at the end of swipe animation

Left Vertical axis options now shown for the Inline charts

Chart options no longer disturbed in "change chart" drop down for inline chart

Array of strings/numbers passed to arrayToDataTable no longer turned into array of objects

Fixed obscure memory leak in Line Chart

Legend options no longer missing in the histogram "customize" tab.

Histogram, Tree chart previews now show properly.

Histogram no longer shows error on a "compare mode" selection

Fixed: Dual axis mode is supported for Histogram chart even though there are no axis options in the Sheets chart editor.

Axis tab options now shown for Histogram

Fixed animation for diff charts

Enabled "plot null values" option for histogram

ChartRangeFilter error fixed

Tooltips now take length of "null" into account

August 27, 2013

Timeline Charts
A timeline is a chart that depicts how a set of resources are used over time. If you're managing a software project and want to illustrate who is doing what and when, or if you're organizing a conference and need to schedule meeting rooms, a timeline is often a reasonable visualization choice. One popular type of timeline is the Gantt chart:https://developers.google.com/chart/interactive/docs/gallery/timeline

Bounding Boxes

We've documented getBoundingBox() and several related methods that let you extract information about where chart elements are drawn on the screen. See the chart gallery documentation pages for details.

Geocoding Improvements

We've made a number of improvements to our geocoding library to better cache requests across multiple GeoCharts on the same page.

A magnifying glass is now opened when the user hovers over cluttered markers (excluding IE<=8).
How to keep the old behavior? Set the magnifyingGlass option to {enable: false}.

We don't stretch the maps by default anymore, but rather keep the original aspect ratio.
How to keep the old behavior? Set the keepAspectRatio option to false.

A new experimental option forceIFrame whose default is true
(the current behavior), but can be set to false. When set to false,
corechart charts, geo chart, treemap and gauge will not render
the chart in a iframe (for all browsers excluding IE<=8). This is still
very experimental, and undocumented. We would like you to try it out and
give us your input!

January 18, 2012

Changed the default of strictFirstColumnType to true.
If this causes issues with your charts please refer to the help section.

Improved Pie Chart by exposing an option for 3D and for formatting the texts on the slices and the tooltips.

Improved handling of error notifications across all charts.

Fixed several bugs, including addressing the memory leak that occurred when redrawing charts.

Fixed bug in Geomap where two letter codes where wrongly assumed to be region codes.

June 16, 2010

Added onmouseover/onmouseout events to treemap

Generic image charts, type radar:

Both r and rs chart types now supported

showValueLabels is now true by default

Area, bar, column, line, pie, and scatter charts:

Fixed some layout and ordering bugs.

Improved error handling of bad data values.

Additional small bug fixes.

Geomap - Now supports internationalized tool tip strings.

May 18, 2010

New Core Charts (see below) - Several common chart types have been redesigned,
and combined into a single package called corechart. We will no
longer fix bugs or add new features in the older versions but rather encourage
users to migrate to the new charts.

More About Core Charts

We have created new versions of several common chart types, including area,
bar, column, line, pie, and scatter charts. The new versions are in a common
package called corechart. The older versions will continue to exist, in their
previous packages, but we encourage you to start using these new versions.

How to migrate to the new charts:

Change your package name
Load the new corechart package rather than the older packages.
This new package includes the code for the new versions of the area, bar, column,
line, pie, and scatter visualizations, which were previously loaded by separate
packages.

google.charts.load("current", {packages:["corechart"]});

Adjust your chart options
Although many of the options have remained the same, some have been renamed
or are not yet supported.

Renamed Options:

reverseAxis - Now called reverseCategories.

lineSize - Now called lineWidth.

smoothLine - Now called curveType and instead
of the value true, the user should specify the value 'function'.

titleX/titleY - These options are now called title and
are part of the new hAxis or vAxis objects.

logScale/logScaleX - These options are now called logScaleand
are part of the new hAxis or vAxis objects.

min/max - These options are now called minValue/maxValueand
are part of the new hAxis or vAxis objects.

Unsupported Options:

Legend positions - We currently support only the right
legend position (or not displaying a legend).

3D - Pie charts do not support a 3D version at the
moment.

Tooltip - In the current version, tooltips open automatically
on mouse hover; you cannot open or close them using the API.

April 22, 2010

Mostly internal changes.

February 5, 2010

Map and Geomap now
dynamically load maps
API V3. If you currently load the maps API V2 script, you should remove it.Note: You can not use the maps API V2 together with gviz Map/Geomap
charts.

Legends have been temporarily disabled in image
pie chart, image scatter chart, and image line chart. (Image scatter and
image line charts are created using the Generic
Image Chart, by setting option 'cht' to 's' (scatter chart) or 'lxy' (line
chart)).

Fixed an image pie chart bug. Previously,
if you passed multiple colors to your options object it create
a gradient based only on the first color, ignoring all additional colors. Now
it uses all colors as documented.

Fixed an annotated timeline labeling
bug. Previously, labels were truncated to any % markers in the legend; this has
been fixed to allow % characters.

April 6, 2009

New toolbar helper element that enables
you to export your data in a variety of formats, or embed the visualization in
another page.