Google chart animation loses visibility when chart data changes
P粉170438285
2023-09-02 12:32:58
<p>I'm having trouble getting Google Chart animations to work properly. I think the problem is that the chart keeps redrawing instead of just updating the data, but based on Google's sample code and my limited knowledge of JavaScript, I'm not sure how to fix this. I don't want to include a button to update the chart because the chart will eventually dynamically update data from the data source. How do I update my chart to properly animate data changes? </p>
<p>Reference: https://developers.google.com/chart/interactive/docs/animation</p>
<pre class="brush:php;toolbar:false;"><!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="https://www.gstatic.com/charts/loader.js"></script>
</head>
<body>
<div id="pizzaChart" style="overflow: hidden"></div>
<p id="logger"></p>
<script>
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var mushroomData = Math.floor(Math.random() * 11);
document.getElementById("logger").innerHTML = mushroomData;
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['Mushrooms', mushroomData],
['Onions', 1],
['Olives', 1],
['Zucchini', 1],
['Pepperoni', 2]
]);
var options = {
title: 'How Much Pizza I Ate Last Night',
width: '100%',
animation: {duration: 1000, easing: 'out'}
};
var chart = new google.visualization.ColumnChart(document.getElementById('pizzaChart'));
chart.draw(data, options);
}
setInterval(drawChart, 1000);
</script>
</body>
</html></pre>
In order for a chart to animate from one dataset to the next, you need to keep a reference to the same chart instead of creating a new chart each time you draw.
Please refer to the following examples...
Note: Google pie charts do not support animation effects.