Javascript 从轮询JSON数据构建图表
我有一个比特币矿工,它可以按如下方式输出JSON格式的数据:Javascript 从轮询JSON数据构建图表,javascript,php,json,highcharts,Javascript,Php,Json,Highcharts,我有一个比特币矿工,它可以按如下方式输出JSON格式的数据: { "Data1": { "timestamp_raw": 1442856476, "timestamp": { "Year": 2015, "Month": 9, "Day": 21, "Hour": 20, "Minutes": 27, "Secon
{
"Data1": {
"timestamp_raw": 1442856476,
"timestamp": {
"Year": 2015,
"Month": 9,
"Day": 21,
"Hour": 20,
"Minutes": 27,
"Seconds": 56
},
"CG_Uptime": 15572,
"MHS_Avg": 2695618.06,
"DegC_In": "29",
"DegC_TopOut": "54",
"DegC_BotOut": "59",
"Unit_Uptime": 118393,
"FreeMem": "440",
"PSUVolt_Top": "217",
"PSUVolt_Bot": "217",
"FAN": "40",
"Total_Watts": 1264,
"Total_KWh": 0
},
"Data2": {
"timestamp_raw": 1442856495,
"timestamp": {
"Year": 2015,
"Month": 9,
"Day": 21,
"Hour": 20,
"Minutes": 28,
"Seconds": 15
},
"CG_Uptime": 15592,
"MHS_Avg": 2695948.02,
"DegC_In": "29",
"DegC_TopOut": "54",
"DegC_BotOut": "59",
"Unit_Uptime": 118412,
"FreeMem": "440",
"PSUVolt_Top": "217",
"PSUVolt_Bot": "217",
"FAN": "40",
"Total_Watts": 1248,
"Total_KWh": 30.006586944
},
"Data3": {
"timestamp_raw": 1442856535,
"timestamp": {
"Year": 2015,
"Month": 9,
"Day": 21,
"Hour": 20,
"Minutes": 28,
"Seconds": 55
},
"CG_Uptime": 15631,
"MHS_Avg": 2698686.25,
"DegC_In": "29",
"DegC_TopOut": "54",
"DegC_BotOut": "59",
"Unit_Uptime": 118451,
"FreeMem": "440",
"PSUVolt_Top": "217",
"PSUVolt_Bot": "217",
"FAN": "40",
"Total_Watts": 1232,
"Total_KWh": 0.013688752
}, ......
我想做的是用php制作一个网页,读取这个json文件并在图表上显示值,x轴是json中时间戳部分的时间,y轴是每个图表的值
我在这里见过类似的东西
它使用海图。
我怎样才能做到这一点呢?我想你只是在寻求一般性的建议 实时数据: 这里是我的:如果为您提供比特币数据的服务器支持历史数据,比如数据范围从到等的特定请求。那么,只需在HTML文件中对您的服务器使用AJAX调用即可。然后在PHP中调用一些GET/POST到提供者服务器以获取请求的数据。然后在AJAX响应中向图表提供数据。只要确保你有海图所要求的正确格式 在Highcharts网站上找不到很多例子,因为Highcharts的后端有什么并不重要。不过,这解释了一点。在步骤1:设置服务器而不是随机数据时,从数据提供商处获取正确的数据 预处理数据: 根据您的问题更新,还有其他建议:我无法告诉您上周需要如何存储数据,但我想简单的数据库就足够了。正如您所说,使用一些cron任务,从服务获取数据,然后将其存储在数据库中 问题是JSON的哪个属性是要在图表上显示的值。在下面的示例中,我假设MHS_Avg用作y值。不过,我没有看到任何像日期或时间戳这样的x值 假设您有/var/www/json.php为图表加载数据:
$(function () {
$.getJSON("/var/www/json.php", function (data) {
var value,
series = [{
name: "MHS_Avg",
data: []
}]; // create series array with all series
// now parse data:
$.each(data, function (i, obj) {
value = parseFloat(obj["MHS_Avg"]);
if (!isNaN(value)) {
series[0].data.push([i, value]);
// or:
// series[0].data.push(value);
// or:
// series[0].data.push({ x: i, y: value });
};
});
// create chart
$('#temps_hist').highcharts({
series: series
});
});
});
你的具体问题是什么?highcharts API文档包含有关如何更新图表的信息。你不明白这个过程的哪一部分?我在看这个我不确定这是否适合我的情况。我是否需要以某种方式轮询JSON数据,比如最近24小时的数据,并将其存储在我的服务器上,这样highchart代码就可以解析它了?看看这一点,在提问者输入错误的背景下,并不是很有解释性,更正了我的回答highcharts文档中ajax示例的OK和更新的答案。注意:我不是PHP爱好者,所以用PHP从数据库获取数据不是我的职责。当然,关于PHP+MySQL等有数百个类似的问题,谢谢你的回复!X轴是时间,所以我需要生成一个新的json,并为其时间戳添加一个额外的字段。我会努力的,会带着结果回来的。