Разработайте линейный график из данных JSON

Привет. Я новичок в PHP/JSON и построении с ними графиков. Я пытаюсь построить график, используя данные, которые я собираю из моей базы данных MYSQL, которая собирает данные с нескольких датчиков, но в данном случае с датчика температуры в реальном времени. Я нахожусь в точке, где у меня есть эхо данных в формате JSON на странице PHP, но у меня возникают проблемы с созданием графика. Я чувствую, что бегаю по кругу, пытаясь завершить его, поэтому я либо углубляюсь во что-то слишком сложное для своих знаний, либо упускаю что-то очевидное, любая помощь будет высоко оценена.

Вот формат JSON, который я создаю из файла PHP с именем data.php:

 [{ "time": "04:14:39", "temperature": 15.3 }]

НИЖЕ ПРЕДСТАВЛЕН КОД, КОТОРЫЙ Я ИСПОЛЬЗОВАЛ ОТ AMCHARTS.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>amCharts tutorial: Loading external data</title>
</head>
<body>

<!-- prerequisites -->
<link rel="stylesheet" href="http://www.amcharts.com/lib/style.css" type="text/css">
<script src="http://www.amcharts.com/lib/3/amcharts.js" type="text/javascript"></script>
<script src="http://www.amcharts.com/lib/3/serial.js" type="text/javascript"></script>

<!-- cutom functions -->
<script>
AmCharts.loadJSON = function(url) {
if (window.XMLHttpRequest) {

var request = new XMLHttpRequest();
} else {

var request = new ActiveXObject('Microsoft.XMLHTTP');
} 


request.open('GET', url, false);
request.send();


return eval(request.responseText);
};
</script>

<div id="chartdiv" style="width: 600px; height: 300px;"></div>

<script>

var chart;



AmCharts.ready(function() {



var chartData = AmCharts.loadJSON('data.php');

chart = new AmCharts.AmSerialChart();
chart.pathToImages = "http://www.amcharts.com/lib/images/";
chart.dataProvider = chartData;
chart.categoryField = "time";


var graph1 = new AmCharts.AmGraph();
graph1.valueField = "temperature";
graph1.bullet = "round";
graph1.bulletBorderColor = "#FFFFFF";
graph1.bulletBorderThickness = 2;
graph1.lineThickness = 2;
graph1.lineAlpha = 0.5;
chart.addGraph(graph1);

chart.categoryAxis.parseDates = true;
chart.write("chartdiv");
});

</script>

</body>
</html>

person Shaun Wallace    schedule 11.02.2014    source источник


Ответы (1)


Когда для параметра parseDates установлено значение true, вы должны указать полную дату (с указанием года, месяца и даты), чтобы это работало. Вы также должны установить chart.dataDateFormat = "YYYY-MM-DD JJ:NN:SS" (если это будет ваш формат даты), а также categoryAxis.minPeriod = "ss" (секунды).

person zeroin    schedule 12.02.2014