Google Charts - линия тренда для столбчатой ​​диаграммы с накоплением

Моя проблема связана с столбчатой ​​диаграммой с накоплением в Google Charts API.

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

<script type="text/javascript">
 google.charts.load("current", {"packages":["corechart"]});
 google.charts.setOnLoadCallback(drawVisualization);
 function drawVisualization() {
 var data = google.visualization.arrayToDataTable([['Month', 'OK', 'KO', 'Estimation'],[ '2016/08', 1990, 49, null ],[ '2016/09', 6892, 97, null ],[ '2016/10', 6018, 0, null ],[ '2016/11', 7329, 146, null ],[ '2016/12', 3059, 97, 1827 ]]);
 var options = {
  isStacked: true,
  seriesType: "bars",
  legend: "none",
  hAxis:{ textPosition: "none" },
  vAxis: { viewWindow: { min: 0, max: 8000 } },
  trendlines: { 0: {} }
 };
 var chart = new google.visualization.ComboChart(document.getElementById("bar"));
 chart.draw(data, options);
 }
 </script>

Когда я добавляю trendlines: { 0: {} },, я не получаю результатов.

Я ничего не нашел в справочнике. Может это не реализовано, или я ошибаюсь?


person Crypto    schedule 19.12.2016    source источник


Ответы (1)


хотя в документации не упоминается, trendlines поддерживаются только на непрерывной оси x

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

строковые значения приводят к дискретной оси

см. дискретный или непрерывный ...

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

первый столбец преобразуется в фактическую дату с использованием DataView, что позволяет _3 _...

google.charts.load('current', {
  callback: function () {
    var data = google.visualization.arrayToDataTable([
      ['Month', 'OK', 'KO', 'Estimation'],
      ['2016/08', 1990, 49, null],
      ['2016/09', 6892, 97, null],
      ['2016/10', 6018, 0, null],
      ['2016/11', 7329, 146, null],
      ['2016/12', 3059, 97, 1827]
    ]);

    var view = new google.visualization.DataView(data);
    view.setColumns([{
      calc: function (dt, row) {
        var dateParts = dt.getValue(row, 0).split('/');
        return new Date(parseInt(dateParts[0]), parseInt(dateParts[1]) - 1, 1);
      },
      type: 'date',
      label: data.getColumnLabel(0)
    }, 1, 2, 3]);

    var options = {
      isStacked: true,
      seriesType: 'bars',
      legend: 'none',
      hAxis: {
        textPosition: 'none'
      },
      vAxis: {
        viewWindow: {
          min: 0,
          max: 8000
        }
      },
      trendlines: {
        0: {}
      }
    };

    var chart = new google.visualization.ComboChart(document.getElementById('bar'));
    chart.draw(view, options);
  },
  packages:['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="bar"></div>

person WhiteHat    schedule 22.12.2016