Heim  >  Fragen und Antworten  >  Hauptteil

Die Google-Diagrammanimation verliert an Sichtbarkeit, wenn sich die Diagrammdaten ändern

<p>Ich habe Probleme damit, dass die Google Chart-Animationen ordnungsgemäß funktionieren. Ich denke, das Problem besteht darin, dass das Diagramm ständig neu gezeichnet wird, anstatt nur die Daten zu aktualisieren, aber basierend auf dem Beispielcode von Google und meinen begrenzten JavaScript-Kenntnissen bin ich mir nicht sicher, wie ich das beheben kann. Ich möchte keine Schaltfläche zum Aktualisieren des Diagramms einfügen, da das Diagramm letztendlich die Daten aus der Datenquelle dynamisch aktualisiert. Wie aktualisiere ich mein Diagramm, um Datenänderungen richtig zu animieren? </p> <p>Referenz: https://developers.google.com/chart/interactive/docs/animation</p> <pre class="brush:php;toolbar:false;"><!DOCTYPE html> <html> <Kopf> <base target="_top"> <script src="https://www.gstatic.com/charts/loader.js"></script> </head> <Körper> <div id="pizzaChart" style="overflow: versteckt"></div> <p id="logger"></p> <script> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); Funktion 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([ ['Pilze', MushroomData], ['Zwiebeln', 1], ['Oliven', 1], ['Zucchini', 1], ['Peperoni', 2] ]); var-Optionen = { Titel: „Wie viel Pizza habe ich letzte Nacht gegessen“, Breite: '100%', Animation: {Dauer: 1000, Easing: 'out'} }; var chart = new google.visualization.ColumnChart(document.getElementById('pizzaChart')); chart.draw(Daten, Optionen); } setInterval(drawChart, 1000); </script> </body> </html></pre>
P粉170438285P粉170438285384 Tage vor645

Antworte allen(1)Ich werde antworten

  • P粉301523298

    P粉3015232982023-09-03 09:22:36

    为了使图表从一个数据集动画到下一个数据集,您需要保留对同一图表的引用,而不是每次绘制时创建新的图表。

    请参考以下示例...

    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);

    注意:Google饼图不支持动画效果。

    Antwort
    0
  • StornierenAntwort