2016-12-19 20 views
1

Моя проблема связана с диаграммой столбчатых столбцов с API Google Charts.Графики Google - линия тренда для таблицы с разбивкой столбцов

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

<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: {} }, Я не получаю результатов.

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

ответ

1

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

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

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

см discrete vs continuous ...

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

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

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>

 Смежные вопросы

  • Нет связанных вопросов^_^