我要求一些帮助,因为我找不到另一个线程来解决我的问题。我正在使用HighCharts渲染一个具有温度和湿度值的图表,保存在本地数据库中。每个值都带有类型(temp
或humi
),进行测量的传感器,知道何时采用的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);
答案 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]
数组temp
或humi
数组。