Как добавить еще один ряд данных в диаграмму Google - PullRequest
5 голосов
/ 27 декабря 2011

Я настроил простую Google Chart, следуя примеру на этой странице: 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 году

1 Ответ

2 голосов
/ 27 декабря 2011

Вам необходимо добавить новые данные в переменную data и снова вызвать метод chart.draw (). Смотрите документацию по DataTable или играйте немного по 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));
...