私はチャートのデータとIDを除いて同じ3つのGoogleのグラフを持っています。 現時点で私はこれらのチャートをこのように呼びます。Googleのグラフ機能にデータを送信
google.charts.setOnLoadCallback(drawBasic);
google.charts.setOnLoadCallback(drawBasic2);
google.charts.setOnLoadCallback(drawBasic3);
チャートは、私は可能であれば少ないコードを使用することが好きなように私は、一つの機能の代わりに、3をしたいと思いますが、私はこれを行うとき、それは動作しませんほとんど同じですので。 google.charts.setOnLoadCallback(drawBasic(mydata、myid));
私はこのようなデータを送ることができたら、私は3つの関数を必要としないでしょう、私は呼び出されるたびに異なるデータを持つdrawBasic関数を1つだけ必要とします。 私は3つの関数をすべて貼り付けません私の関数がどのように配置されているかを示す一つの関数を貼り付けます。
function drawBasic() {
var data = new google.visualization.DataTable();
data.addColumn('date', 'Month');
data.addColumn('number', 'Sales');
data.addRows([
[new Date(2016, 4), 0],[new Date(2016, 5), 0],[new Date(2016, 6), 0],[new Date(2016, 7), 0],[new Date(2016, 8), 0],[new Date(2016, 9), 0]
]);
var options = {
title: 'Total Sales Last Six Months',
hAxis: {
title: 'Sales'
},
vAxis: {
title: 'Month'
},
backgroundColor: { fill:'transparent' },
legend: {position: 'none'},
'animation':{duration:1000,easing:'out'}
};
var chart = new google.visualization.BarChart(document.getElementById('total_sales_chart'));
chart.draw(data, options);
setTimeout(function(){
data.setValue(0,1,14690);
data.setValue(1,1,2785);
data.setValue(2,1,23345);
data.setValue(3,1,10345);
data.setValue(4,1,12456);
data.setValue(5,1,19642);
chart.draw(data, options);
},1000);
}
私のデータを関数に送ることができます。私はGoogleチャートを初めて使っていますが、可能であれば、3つの関数を使用して1つだけを取り除くことはできません。
さて、私はうまくいった解決策を思いついたが、あなたの解決策は良かった。私の解決策はこのvar myData = [[新しい日付(2016,4)、50]、[新しい日付(2016,5)、78]、[新しい日付(2016,6)、99]、[新しい日付(2016、 7)、50]、[新しい日付(2016,8)、78]、[新しい日付(2016,9)、99]]; google.charts.setOnLoadCallback(function(){ drawBasic( 'total_hr_chart'、myData); });しかし、これは私がsetOnLoadCallbackを3回呼び出さなければならないことを意味します。あなたのソリューションははるかに優れていました。今は私のソリューションを使用しています。コードを60行ほど減らすことができました。ありがとう –