我有3张谷歌图表,除了图表的数据和ID之外,它们是相同的。 目前我将这些图表称为这样。
google.charts.setOnLoadCallback(drawBasic);
google.charts.setOnLoadCallback(drawBasic2);
google.charts.setOnLoadCallback(drawBasic3);
因为图表几乎相同,所以我想要一个函数而不是3个,因为我喜欢使用更少的代码,但是当我这样做时它不起作用。 google.charts.setOnLoadCallback(drawBasic(MYDATA,本身份识别码));
如果我可以发送这样的数据,那么我就不需要3个函数,我只需要一个drawBasic函数,每次调用时都会有不同的数据。 我不会粘贴所有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);
}
因此我可以将数据发送到该功能。我是谷歌排行榜的新手,但在可能的情况下,当我只能使用一个功能时,我不喜欢使用3种功能。
答案 0 :(得分:1)
setOnLoadCallback
意味着每次加载一次
但是,您可以将callback
添加到load
语句
然后从那里调用绘图函数......
google.charts.load('current', {
callback: function () {
drawBasic(mydata1, myid1);
drawBasic(mydata2, myid2);
function drawBasic(data, id) {
...
}
},
packages: ['corechart']
});
答案 1 :(得分:0)
做某事:
var data=[[1,2],[3,4]];
google.charts.setOnLoadCallback(function(){
for(i=0;i<data.length;i++){
drawBasic(data[i]);
}
});
这个小函数调用drawBasic,其中一个数组元素作为参数列表。 所以你的drawBasic函数将被调用如下:
drawBasic([1,2]);
drawBasic([3,4]);