Задание переменной для результата агрегации данных визуализации Google

1

Ниже приведена моя функция, которая рисует диаграмму с использованием google.visualization.data.group() и google.visualization.data.sum.

См. Скрипку для рабочего примера: https://jsfiddle.net/xmcqyuqc/7/

    function drawChart() {

    var urlString = '../Logs/clnLogsSelectingEvents?grade=All&SC=1&CauseSC=3&CutOffDate=01/01/2017';

    $.ajax({
        type: 'GET',
        dataType: 'json',
        contentType: "application/json",
        //url: urlString,       //I have commented out but this is my original source.
        success: function (result) {

            //Create DataTable
            var data = new google.visualization.DataTable();

            //Add Columns
            data.addColumn('string', 'CW');
            data.addColumn('string', 'Business Division');
            data.addColumn('string', 'Product');
            data.addColumn('number', 'Cost');
            data.addColumn('number', 'Quantity');
            data.addColumn('number', 'Age (d)');
            data.addColumn('string', 'Actual State');

            //Add Rows
            var dataArray = [];
            //replaced with manual sample data     
            for (i = 0; i < 5; i++) { 
              dataArray.push([      
                'CW' + i,
                'GS',
                'line' + i,
                10,
                99,
                99,
                'state' + i
              ]);        
            }
            data.addRows(dataArray);

            //Create Data View
            var view = new google.visualization.DataView(data);
            view.setColumns([1, 3]);

            //Create Data Aggregation
            var groupView = google.visualization.data.group(view, [{
                column: 0,
                type: 'string'
            }], [{
                column: 1,
                aggregation: google.visualization.data.sum,
                type: 'number'
            }]);

            //Options
            var options = {   
                max: '150'      ///I want to set this based on the result of the aggregation
            };

            //Instantiate and draw chart, passing in options.
            var chart = new google.visualization.Gauge(document.getElementById('chart_div'));
            chart.draw(groupView, options);

    }   //END  success: function (result) {
  });     //END  $.ajax({
}           //END  function drawChart()

Я установил максимальный жесткий код 150.

var options = {   
   max: '150' 
};

Я хочу установить max в вычисленное значение в 3 раза по агрегированной сумме.

Пример: google.visualization.data.sum возвращает 50 * 3 = 150 максимальное значение

Я не знаю, как это сделать, и не может получить переменную, установленную в значение google.visualization.data.sum которое рассчитывается агрегированием.

Поблагодарите за помощь гуру! Спасибо!

Теги:
asp.net-mvc
charts
google-visualization

1 ответ

1
Лучший ответ

google.visualization.data.group возвращает обычный класс DataTable

используйте метод диаграммы getValue чтобы получить значение в таблице групп

getValue(rowIndex, colIndex)

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

groupView.getValue(0, 1)

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

google.charts.load('current', {
  callback: drawChart,
  packages: ['gauge']
});

function drawChart() {
  //Create DataTable
  var data = new google.visualization.DataTable();

  //Add Columns
  data.addColumn('string', 'CW');
  data.addColumn('string', 'Business Division');
  data.addColumn('string', 'Product');
  data.addColumn('number', 'Cost');
  data.addColumn('number', 'Quantity');
  data.addColumn('number', 'Age (d)');
  data.addColumn('string', 'Actual State');

  //Add Rows
  var dataArray = [];
  //replaced with manual sample data
  for (i = 0; i < 5; i++) {
    dataArray.push([
      'CW' + i,
      'GS',
      'line' + i,
      10,
      99,
      99,
      'state' + i
    ]);
  }
  data.addRows(dataArray);

  //Create Data View
  var view = new google.visualization.DataView(data);
  view.setColumns([1, 3]);

  //Create Data Aggregation
  var groupView = google.visualization.data.group(view, [{
      column: 0,
      type: 'string'
  }], [{
      column: 1,
      aggregation: google.visualization.data.sum,
      type: 'number'
  }]);

  //Options
  var options = {
      max: groupView.getValue(0, 1)
  };

  //Instantiate and draw chart, passing in options.
  var chart = new google.visualization.Gauge(document.getElementById('chart_div'));
  chart.draw(groupView, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
  • 0
    Опять ... спасибо ... отлично сработало !!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню