Highcharts包含数据库

时间:2015-06-01 14:51:37

标签: javascript database highcharts

我要求一些帮助,因为我找不到另一个线程来解决我的问题。我正在使用HighCharts渲染一个具有温度和湿度值的图表,保存在本地数据库中。每个值都带有类型(temphumi),进行测量的传感器,知道何时采用的datetime以及计算出来的系数的id真实的温度和腐殖质的价值观。 我想要渲染一个图表,其中每个系列是一个传感器,传感器保存在我的数据库中的两种类型的值。 我可以在数据库中拥有多达24个具有24个临时值和24个具有相同日期时间的humis传感器

首先我不知道我是否可以做一些对象定义直接在HighCharts中使用它们,所以现在我有很多数组。 我不明白系列选项的工作方式,有很多东西,我迷失了。我刚刚从C ++切换到JS和PHP,所以我很难改变我的习惯^^

无法在此处上传我的表格,但我可以将其托管here

如果不能只制作一张图表,我可以做两张图表:一张图表的温度是湿度,一张(如带标签吗?)。

谢谢:)

编辑:以下是我测试图表的JSON:

{ “类型”:[ “临时”, “HUMI”, “临时”, “HUMI”, “临时”, “HUMI”, “临时”, “HUMI”], “capteur”:[ “1”中, “1”, “3”, “3”, “1”, “1”, “3”, “3”], “日期”:[ “1432654910”, “1432654910”, “1432654910”, “1432654910” , “1432742599”, “1432742599”, “1432742599”, “1432742599”], “valeur”:[ “6626”, “1220”, “6357”, “1168”, “6782”, “1118”, “6329” “994”], “_系数”:[ “0”, “0”, “0”, “0”, “0”, “0”, “0”, “0”]}

这里我的JS函数将JSON转换为我需要的数组:

function arrangeData(data):

    var result = {
        "temp" : {
            "capteur" : [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "date" : []
        }, 
        "humi" : {
            "capteur" : [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "date" : []
        }
    };
    for(var i in data.type){
        if(data.type[i].localeCompare("temp") == 0){
            result.temp.capteur[data.capteur[i] - 1].push(data.valeur[i]);
            if(result.temp.date.length != 0){
                if(result.temp.date[result.temp.date.length - 1].getTime() != data.date[i] * 1000)
                    result.temp.date.push(new Date(data.date[i] * 1000));
            }
            else
                result.temp.date.push(new Date(data.date[i] * 1000));
        }
        else{
            result.humi.capteur[data.capteur[i] - 1].push(data.valeur[i]);
            if(result.humi.date.length != 0){
                if(result.humi.date[result.humi.date.length - 1].getTime() != data.date[i] * 1000)
                    result.humi.date.push(new Date(data.date[i] * 1000));
            }
            else
                result.humi.date.push(new Date(data.date[i] * 1000));
        }
    }
    console.log(result);
    return result;

我将“结果”传递给setChart,如下所示:

setChart(chart_temp,name,data.temp.date,data.temp.capteur);

1 个答案:

答案 0 :(得分:0)

感谢Sebastian Bochan,我现在可以使用HighCharts将我的数据从输出JSON数据的PHP文件下载。

我必须以这种方式解析数组中的JSON数据: data:{ temp:{ [datetime, value], ...}, humi:{ [datetime, value], ...}}; x轴是日期时间,y轴是我的传感器报告的值。

在图表中,我在chart.addSeries({name: name[i], data: data[i]});循环中执行for,其中chart是我要设置的图表,name是每个名称的数组系列data[datetime, value]数组temphumi数组。