Google Bubblechart - Таблица не имеет столбцов - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь реализовать пузырьковую диаграмму визуализации Google на основе этого образца.

РАБОЧИЙ ДЕМО http://jsfiddle.net/jm83y5tL/3/

Я преобразовал данные в json иЯ хочу внедрить данные json в функцию, но там указано, что в таблице нет столбцов.

НЕ РАБОТАЕТ http://jsfiddle.net/029jhgac/3/

google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawSeriesChart);


function drawSeriesChart() {

      var rawdata = '[["ID","Life Expectancy","Fertility Rate","Region","Population"],["CAN",80.66,1.67,"North America",33739900],["DEU",79.84,1.36,"Europe",81902307],["DNK",78.6,1.84,"Europe",5523095],["EGY",72.73,2.78,"Middle East",79716203],["GBR",80.05,2,"Europe",61801570],["IRN",72.49,1.7,"Middle East",73137148],["IRQ",68.09,4.77,"Middle East",31090763],["ISR",81.55,2.96,"Middle East",7485600],["RUS",68.6,1.54,"Europe",141850000],["USA",78.09,2.05,"North America",307007000]]';

      // var testdata = JSON.parse(rawdata);

      // console.log(data);

      var data = new google.visualization.DataTable(rawdata);

            var options = {
        title: 'Correlation between life expectancy, fertility rate ' +
               'and population of some world countries (2010)',
        hAxis: {title: 'Life Expectancy'},
        vAxis: {title: 'Fertility Rate'},
        bubble: {textStyle: {fontSize: 11}}
      };

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

1 Ответ

0 голосов
/ 20 октября 2018

для того, чтобы создать таблицу данных непосредственно из json,
json должен быть в определенном формате, как показано здесь ...

Формат JavaScript Конструктора Параметр литеральных данных

в противном случае вы можете использовать -> arrayToDataTable

var data = google.visualization.arrayToDataTable(JSON.parse(rawdata));

см. Следующий рабочий фрагмент ...

google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawSeriesChart);


function drawSeriesChart() {

      var rawdata = '[["ID","Life Expectancy","Fertility Rate","Region","Population"],["CAN",80.66,1.67,"North America",33739900],["DEU",79.84,1.36,"Europe",81902307],["DNK",78.6,1.84,"Europe",5523095],["EGY",72.73,2.78,"Middle East",79716203],["GBR",80.05,2,"Europe",61801570],["IRN",72.49,1.7,"Middle East",73137148],["IRQ",68.09,4.77,"Middle East",31090763],["ISR",81.55,2.96,"Middle East",7485600],["RUS",68.6,1.54,"Europe",141850000],["USA",78.09,2.05,"North America",307007000]]';


      var data = google.visualization.arrayToDataTable(JSON.parse(rawdata));

            var options = {
        title: 'Correlation between life expectancy, fertility rate ' +
               'and population of some world countries (2010)',
        hAxis: {title: 'Life Expectancy'},
        vAxis: {title: 'Fertility Rate'},
        bubble: {textStyle: {fontSize: 11}}
      };
      

      var chart = new google.visualization.BubbleChart(document.getElementById('series_chart_div'));
      chart.draw(data, options);
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<div id="series_chart_div" style="width: 900px; height: 500px;"></div>
...