Javascript 从轮询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

我有一个比特币矿工,它可以按如下方式输出JSON格式的数据:

{
    "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,并为其时间戳添加一个额外的字段。我会努力的,会带着结果回来的。