Как я могу ограничить свою диаграмму Google 7 пунктами? - PullRequest
0 голосов
/ 21 ноября 2018

Мне интересно, как я могу ограничить МАКСИМАЛЬНОЕ количество элементов, которые оно может отображать на моем графике, до 5. Я получил задание cron, ежедневно обновляющее .json, и в настоящее время он просто пытается разместить их всех там.

Это мой код:

<script>
google.charts.load("visualization", "1", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
	var jsonData = $.ajax({
        url: "/server/database.json",
        dataType: "json",
        async: false
    }).responseText;

	var data = new google.visualization.DataTable(jsonData);

	var options = {
		title: 'Players Hourly',
		'is3D':true,
		legend: 'bottom',
		hAxis: { 
			minValue: 0,
			format: 'long'
		},
		vAxis: {
			minValue: 0,
        	scaleType: 'log',
        	format: 'long'
  		},
		pointSize: 5,
        series: {
            0: { pointShape: 'circle' },
        }	
	};
	var chart = new google.visualization.LineChart(document.getElementById('serverstats'));
	chart.draw(data, options);
}
$(window).resize(function(){
	drawChart();
});
</script>

Спасибо.

1 Ответ

0 голосов
/ 22 ноября 2018

Самый простой способ - использовать представление данных и метод setRows.
, а затем использовать представление для построения диаграммы.

var data = new google.visualization.DataTable(jsonData);
var view = new google.visualization.DataView(data);
view.setRows([0, 1, 2, 3, 4]);  //<-- provide an array of the row indexes you want to see
...
chart.draw(view, options);  //<-- use view here

РЕДАКТИРОВАТЬ

, чтобы показать последние 5 строк ...

  var viewRows = [];
  for (var i = data.getNumberOfRows() - 1; i > data.getNumberOfRows() - 6; i--) {
    viewRows.push(i);
  }
  view.setRows(viewRows);
...