首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从轮询JSON数据构建图表

从轮询JSON数据构建图表
EN

Stack Overflow用户
提问于 2015-04-26 21:55:18
回答 1查看 299关注 0票数 0

我有一个比特币矿工,可以从JSON中输出数据,如下所示:

代码语言:javascript
复制
{
    "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轴是每个图表的值。

我在这里看到过类似的http://powerprice.info/SPT/graphic.php,它使用highcharts。我如何才能做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 17:24:35

我认为你只是在寻找一个一般性的建议。

实时数据:

这里是我的:如果服务器,它为你提供比特币的数据支持历史数据,如特定的请求与数据范围(从-到等)。然后,只需在HTML文件中对您的服务器使用AJAX调用。然后在PHP中调用一些GET/POST到提供者服务器以获取所请求的数据。然后在AJAX响应中向图表提供数据。只需确保你有正确的格式,这是Highcharts所要求的。

你不会在Highcharts网站上找到很多例子,因为对于Highcharts来说,你在后端拥有什么真的无关紧要。然而,this tutorial稍微解释了一下。在步骤#1: Set up the server中,不是随机数据,而是从数据提供商那里获得适当的数据。

数据预处理:

根据您的问题更新,其他建议:我不能告诉您需要如何存储上周的数据,但我猜简单的数据库就足够了。正如您所说的,使用一些cron任务从服务中获取数据,然后将其存储在数据库中。

问题是JSON的哪个属性的值将显示在图表上。在下面的示例中,我假设使用MHS_Avg作为y值。不过,我没有看到任何x值的东西(比如date或timestamp)。

假设您让/var/www/json.php为图表加载数据:

代码语言:javascript
复制
$(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
        });
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29878522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档