2011-12-27 83 views
3

我已经安装由以下的例子此页面上一个简单的谷歌图: http://code.google.com/apis/chart/interactive/docs/gallery/linechart.html如何另一个数据系列添加到谷歌图表

google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Year'); 
     data.addColumn('number', 'Sales'); 
     data.addColumn('number', 'Expenses'); 
     data.addRows([ 
     ['2004', 1000, 400], 
     ['2005', 1170, 460], 
     ['2006', 860, 580], 
     ['2007', 1030, 540] 
     ]); 

     var options = { 
      width: 400, height: 240, 
      title: 'Company Performance' 
     }; 

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

但现在,它的渲染后,与一些JavaScript,我想动态添加另一系列数据。任何人都可以在正确的方向指出我如何做到这一点?
我想添加的数据,与雇员人数的一个数字栏,应该以另一种颜色在图表中显示一个新行,并且不在2004年开始,但在2005年,

回答

2

您需要添加将新数据添加到“数据”变量并再次调用chart.draw()方法。 查看数据表文档或http://code.google.com/apis/ajax/playground/?type=visualization#line_chart

实例玩了一下:

// Add columns 
    data.addColumn('string', 'Employee Name'); 
    data.addColumn('date', 'Start Date'); 

    // Add empty rows 
    data.addRows(6); 
    data.setCell(0, 0, 'Mike'); 
    data.setCell(0, 1, {v:new Date(2008,1,28), f:'February 28, 2008'}); 
    data.setCell(1, 0, 'Bob'); 
    data.setCell(1, 1, new Date(2007, 5, 1)); 
    data.setCell(2, 0, 'Alice'); 
    data.setCell(2, 1, new Date(2006, 7, 16)); 
    data.setCell(3, 0, 'Frank'); 
    data.setCell(3, 1, new Date(2007, 11, 28)); 
    data.setCell(4, 0, 'Floyd'); 
    data.setCell(4, 1, new Date(2005, 3, 13)); 
    data.setCell(5, 0, 'Fritz'); 
    data.setCell(5, 1, new Date(2007, 9, 2)); 
+1

有没有一种方法来添加新的数据,而不改变原来的数组?上述建议的问题是我首先必须将新数据“合适”到该数组中。我可以这样做,但默认情况下它并不适合。因此,我的问题.. – Tys 2011-12-28 00:54:14

+0

请参阅DataTable文档。你有addColum和setCell方法。 addColum添加一个新的serie,并使用setCell你可以填充它。最好是将数据副本保存在一个不同于你使用的库所需格式的变量中。通过这种方式,您可以将更多数据添加到源数组并再次传递到可视库。 – EricSonaron 2011-12-28 10:17:31

+0

我希望有更灵活的东西,但我现在这样做了。 – Tys 2011-12-28 21:24:42

相关问题