3 votes

graphiques google - exécuter la fonction après le dessin

Je travaille avec google charts, j'essaie de récupérer une valeur du graphique après qu'il ait fini de se dessiner, je comprends que je dois créer une fonction de rappel qui s'exécutera après que le "dessin" soit terminé - mais je n'arrive pas à la faire fonctionner... Où dois-je appeler la fonction "afterDraw" pour qu'elle soit exécutée après la fin de la fonction "draw" ? Merci de m'aider. Merci :)

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

function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addColumn('number', 'Stam');
data.addRows([
  ['Mushrooms', 3,5],
  ['Onions', 1,7],
  ['Olives', 1,3],
  ['Zucchini', 1,5],
  ['Pepperoni', 2,8]
]);

var options = {'title':'How Much Pizza I Ate Last Night',
               'height':500};

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, options);

}
function afterDraw(){
    alert('all done');
}

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<div id="chart_div"></div>

2voto

WhiteHat Points 33117

Après la création du graphique et avant il est dessiné,

ajouter un écouteur pour le 'ready' événement

Ceci vous permettra de savoir quand le graphique a été dessiné.

google.visualization.events.addListener(chart, 'ready', afterDraw);

voir l'extrait de travail suivant...

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

function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addColumn('number', 'Stam');
data.addRows([
  ['Mushrooms', 3,5],
  ['Onions', 1,7],
  ['Olives', 1,3],
  ['Zucchini', 1,5],
  ['Pepperoni', 2,8]
]);

var options = {'title':'How Much Pizza I Ate Last Night',
               'height':500};

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

google.visualization.events.addListener(chart, 'ready', afterDraw);

chart.draw(data, options);

}
function afterDraw(){
    console.log('all done');
}

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<div id="chart_div"></div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X