2015-12-08 3 views
0

У меня возникли проблемы с заполнением круговой диаграммы с данными json.Google Pie Chart не будет заполняться

function drawChart() { 

    // Create the data table. 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Topping'); 
    data.addColumn('number', 'Slices'); 
    var dataArray = []; 
    var innerArray = []; 

    $.ajax({ 
     url:"/investigation/getCauses.do?disaster_type="+$("#disasterTypeLv3").val() 
     ,dataType:"json" 
    }).done(function(jsdata){ 
     console.log(jsdata); 

     if(jsdata.causes!=undefined && jsdata.causes.length>0){ 
      causes = jsdata.causes; 



      for(var i=0; i<causes.length; i++){ 
       cause = causes[i]; 
       console.log([cause.category_nm, cause.ccnt]); 
       innerArray[i] = [cause.category_nm, cause.ccnt]; 
      } 
      //arrayToDataTable method 
      dataArray[0] = innerArray; 
      data = google.visualization.arrayToDataTable(dataArray); 

      //using an array 
      //data.addRows(innerArray); 
      console.log(innerArray); 
      console.log([ 
         ['Mushrooms', 7], 
         ['Onions', 1], 
         ['Olives', 1], 
         ['Zucchini', 1], 
         ['Pepperoni', 2], 
         ['Olives', 1], 
         ['Zucchini', 1], 
         ['Pepperoni', 2] 
         ]); 
     } 

    }); 






    // Set chart options 
    var options = { 
       //'title':'H ow Much Pizza I Ate Last Night' 
       'width':380 
       ,'height':380 
       //,chartArea:{width: '200', height:'200'}    
    }; 

    // Instantiate and draw our chart, passing in some options. 
    var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 

Ни arrayToDataTable, ни addRows заполнит мою карту.
Первый каротаж innserArray и второй регистрационный код образца от Google Developers дают тот же результат.

Я получаю no data либо arrayToDataTable, либо innerArray. Все работает нормально, когда я просто заменяю переменную массива следующим.

data.addRows([ 
       ["Mushrooms", 7], 
       ["Onions", 1], 
       ["Olives", 1], 
       ["Zucchini", 1], 
       ["Pepperoni", 2], 
       ["Olives", 1], 
       ["Zucchini", 1], 
       ["Pepperoni", 2] 
       ]); 

Что мне здесь не хватает?

ответ

1

Пожалуйста, попробуйте следующее:

Google Pie Chart нужно определить метки для этих данных.

  • Рецепт например: грибной и т.д.

  • Count: например: 1,2,4

    data.addRows([['Recipe','Count'],["Mushrooms", 7],["Onions", 1],["Olives", 1],["Zucchini", 1],["Pepperoni", 2],["Olives", 1],["Zucchini", 1], ["Pepperoni", 2] 
    ]); 
    
+0

Благодаря Abishek для коррекции. Все еще новичок здесь. Ценить это. –

+0

Я думал, что 'addRows()' были строго для строк данных, а не для меток? Разве это не почему 'addColumn()'? – Ascendant

+0

Не уверен, но я просто придумал этот ответ, когда попытаюсь удалить ярлык в добавлении строк из примера здесь: https://developers.google.com/chart/interactive/docs/gallery/piechart?hl= en ", он также не показал график. –