如何在Google可视化图表API中将多个列表用作单个数据

时间:2012-01-30 19:58:33

标签: javascript python datatables google-visualization

我有两个python列表

passlist1= [[1, "Saturday"], [6, "Sunday"], [12 ,"Wednesday"], [31, "Monday"], [14, "Monday"], [1, "Tuesday"], [1, "Sunday"]]
failedlist2= [[11, "Saturday"], [26, "Sunday"], [22 ,"Wednesday"], [41, "Monday"], [15, "Monday"], [16, "Tuesday"], [51, "Sunday"]]

我可以通过传递list1作为参数来使用单个列表绘制图形 但现在我想在一个图表中绘制两个列表。 这是我的图表代码

//load the Google Visualization API and the chart
google.load('visualization', '1', {'packages': ['columnchart']});

//set callback
google.setOnLoadCallback (createChart);

//callback function
function createChart() {

    //create data table object
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn('string','Number Stats');
    dataTable.addColumn('number', passeD');
    dataTable.addColumn('string', Failed');

    dataTable.addRows(list1);

    //instantiate our chart object
    var chart = new google.visualization.ColumnChart (document.getElementById('chart'));


    //define options for visualization  
    var options = {width: 400, height: 240, is3D: true, title: 'Bar Chart'};

    //draw our chart
    chart.draw(dataTable, options);

}

我需要类似passlistfailedlist的比较图表。

有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用addRow方法将多个数组合并为一行,而不是一次添加所有行。

<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

var  list1= [[1, "Saturday"], [6, "Sunday"], [12 ,"Wednesday"], [31, "Monday"], [14, "Monday"], [1, "Tuesday"], [1, "Sunday"]]
var list2= [[11, "Saturday"], [26, "Sunday"], [22 ,"Wednesday"], [41, "Monday"], [15, "Monday"], [16, "Tuesday"], [51, "Sunday"]]

//load the Google Visualization API and the chart
google.load('visualization', '1', {'packages': ['columnchart']});

//set callback
google.setOnLoadCallback (createChart);

//callback function
function createChart() {

    //create data table object
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn('string','Number Stats');
    dataTable.addColumn('number', 'passed');
    dataTable.addColumn('number', 'failed');

    for(var i = 0; i < list1.length; i++){
        var row =  [ list1[i][1], list1[i][0], list2[i][0] ];
        dataTable.addRow( row );
    }

    //instantiate our chart object
    var chart = new google.visualization.ColumnChart (document.getElementById('chart'));


    //define options for visualization  
    var options = {width: 400, height: 240, is3D: true, title: 'Bar Chart'};

    //draw our chart
    chart.draw(dataTable, options);

}
    </script>
  </head>

  <body>
    <!--Div that will hold the pie chart-->
    <div id="chart"></div>
  </body>
</html>