График Google Sheets из одной строки с двумя значениями - PullRequest
0 голосов
/ 30 сентября 2018

Мои данные выглядят так:

A   B
3   5000
2   6218
4   9435

Мне нужно создать диаграмму, где A - количество точек / размер блока, а B - значение каждой точки.

ДляНапример, указанная выше дата создаст линейный график, где 2 первые точки будут иметь значение 5000, следующие 2 точки будут иметь значение 6218, а следующие 4 точки будут иметь значение 9435.

График, который мне нужен, будет выглядеть как автоматический график, который будет сгенерирован для этих данных:

5000
5000
5000
6218
6218
9435
9435
9435
9435

1 Ответ

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

используйте исходную таблицу данных для построения новой таблицы данных.
для каждой строки в исходной таблице, добавьте строку в новую таблицу, сколько раз 'A' представляет.

var x = 0;
for (var row = 0; row < rawData.getNumberOfRows(); row++) {
  for (var a = 0; a < rawData.getValue(row, 0); a++) {
    chartData.addRow([x, rawData.getValue(row, 1)]);
    x++;
  }
}

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

google.charts.load('current', {
  packages:['corechart']
}).then(function () {
  var rawData = google.visualization.arrayToDataTable([
    ['A', 'B'],
    [3, 5000],
    [2, 6218],
    [4, 9435]
  ]);

  var chartData = new google.visualization.DataTable();
  chartData.addColumn('number', 'X');
  chartData.addColumn('number', 'Y');

  var x = 0;
  for (var row = 0; row < rawData.getNumberOfRows(); row++) {
    for (var a = 0; a < rawData.getValue(row, 0); a++) {
      chartData.addRow([x, rawData.getValue(row, 1)]);
      x++;
    }
  }

  var container = document.getElementById('chart_div');
  var chart = new google.visualization.LineChart(container);
  chart.draw(chartData, {
    height: 288,
    pointSize: 4,
    vAxis: {
      minValue: 0
    }
  });
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...