带有两个值的一行的Google表格图表

时间:2018-09-30 11:54:25

标签: charts google-sheets

我的数据如下:

A   B
3   5000
2   6218
4   9435

我需要创建一个图表,其中A是点数/块大小,B是每个点的值。

例如,上述日期将创建一个折线图,其中前两个点的值为5000,接下来的两个点的值为6218,接下来的四个点的值为9435。 / p>

我需要的图形将看起来像将自动为该数据生成的图形:

5000
5000
5000
6218
6218
9435
9435
9435
9435

1 个答案:

答案 0 :(得分:0)

使用原始数据表来构建新数据表。
对于原始表中的每一行,将行添加到新表中,无论'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>