Grundsätzlich empfängt mein JavaScript Daten wie folgt: year = {month1, ...., month12}
. Jeder Monat speichert Daten für 3 Grafiken. month1 = {graph1_data,..., graph3_data}
Mehrere Google Charts auf einer einzigen Seite zeichnen?
Ich möchte Diagramme für alle von ihnen mit Google Charts zeichnen. Das macht es 12 * 3 = 36 Charts. Ich habe die folgende Codelogik geschrieben. Aber es funktioniert nicht.
for (month in year)
{
google.charts.setOnLoadCallback(function(){
// draw graph1
var data = new google.visualization.DataTable();
// code
// code
// data.addColumn()
// data.addColumn()
data.addRows(data_table);
var options = {title: month, height:100};
var chart = new google.visualization.ColumnChart(
document.querySelector('#'+month+' .graph1'));
chart.draw(data, options);
});
google.charts.setOnLoadCallback(function(){
// draw graph2
google.charts.setOnLoadCallback(function(){
var data = new google.visualization.DataTable();
// code
// code
// data.addColumn()
// data.addColumn()
data.addRows(data_table);
var options = {title: month, height:100};
var chart = new google.visualization.ColumnChart(
document.querySelector('#'+month+' .graph2'));
chart.draw(data, options);
});
google.charts.setOnLoadCallback(function(){
// draw graph3
google.charts.setOnLoadCallback(function(){
var data = new google.visualization.DataTable();
// code
// code
// data.addColumn()
// data.addColumn()
data.addRows(data_table);
var options = {title: month, height:100};
var chart = new google.visualization.ColumnChart(
document.querySelector('#'+month+' .graph3));
chart.draw(data, options);
});
}
Es zieht 3 Charts month12
. Warum passiert das? Bedeutet das, dass ich 36 malanrufen muss? Gibt es keinen alternativen Weg?
bearbeiten Es sieht aus wie einmal Google Chart API geladen wird, die Rückrufe in allen setOnLoadCallback
s einmal aufgerufen wird. Das erklärt wahrscheinlich, warum ich nur einen Graphen bekomme, da zum Zeitpunkt der Ausführung der Funktion die Schleife bei month12
stehen geblieben wäre.
Nein. Ich stelle sicher, dass ich an 36 verschiedenen HTML-Standorten schreibe. –
Dann sollten Sie 36 verschiedene Grundstücke bekommen. Vielleicht solltest du deinen Code etwas erweitern. Was hast du in diesen Callback-Funktionen geschrieben? – Quirk
Ich habe eine Bearbeitung vorgenommen. –