基本的に私のJavaScriptは、year = {month1, ...., month12}
のようなデータを受け取ります。毎月、3つのグラフのデータが格納されます。 month1 = {graph1_data,..., graph3_data}
1つのページに複数のGoogle Chartを描画しますか?
Google Chartsを使用して、すべてのチャートを描画したいと考えています。つまり、それは12 * 3 = 36のチャートになります。私は次のコードロジックを書いています。しかし、それは動作しません。
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);
});
}
month12
の3つのチャートを描画します。なぜこれが起こるのですか?これは私がsetOnLoadCallback
を36回呼ぶ必要があることを意味しますか?別の方法はありませんか?
編集 GoogleのチャートAPIがロードされると、すべてのsetOnLoadCallback
秒でコールバックが一度呼び出されるように見えます。関数の実行時にループがmonth12
で停止していたため、グラフが1つしかない理由については、おそらく説明します。
いいえ私は36の異なるHTMLの場所に書き込むことを確認します。 –
次に、36の異なるプロットが得られるはずです。たぶんあなたのコードを少し拡張する必要があります。これらのコールバック関数の中で何を書いていますか? – Quirk
私は編集をしました。 –