Google chart animation loses visibility when chart data changes
P粉170438285
P粉170438285 2023-09-02 12:32:58
0
1
749
<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>
P粉170438285
P粉170438285

reply all(1)
P粉301523298

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...

google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(initChart);
var chart;

function initChart() {
  chart = new google.visualization.ColumnChart(document.getElementById('pizzaChart'));
  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'}
  };

  chart.draw(data, options);
}

setInterval(drawChart, 1000);

Note: Google pie charts do not support animation effects.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template