如何在高库存图表

时间:2016-12-01 17:38:56

标签: highcharts highstock

我有像这样的对象数组

{
"data": [{
    "date": "11/25/2016 08:59:58",
    "energy": 29940935080,
    "power": 6815.7056798623,
    "time": 217781943
}, {
    "date": "11/25/2016 09:29:59",
    "energy": 29940981851,
    "power": 6803.7187250996,
    "time": 217783743
}, {
    "date": "11/25/2016 09:59:59",
    "energy": 29941028913,
    "power": 6841.5804195804,
    "time": 217785544
}, {
    "date": "11/25/2016 10:29:59",
    "energy": 29941075952,
    "power": 6845.9247648903,
    "time": 217787343
}, {
    "date": "11/25/2016 10:59:58",
    "energy": 29941123228,
    "power": 6877.2764478764,
    "time": 217789143
}]

}

我希望y轴显示功率,x轴显示日期。加载数据后加上Y prop,以便Higchart可以读取y轴值

             for (var i = data.data.length - 1; i >= 0; i--) {
                        var item=data.data[i];
                        item.y=data.data[i].power;
                        data.data[i]=item;
                        var timestamp = new Date(data.data[i]['date']).getTime();
                        values.push(timestamp,item.y);

                    }


                    chart.series[0].setData(values);

但由于某些原因,数据未在图表中显示,请在此指导我

1 个答案:

答案 0 :(得分:2)

我不确定你为什么按照自己的方式进行循环,但它有一些问题。

  1. 你正在倒转阵列。除非您的日期以相反的顺序存储,否则会导致问题。 Highcharts希望对X数据进行排序。
  2. 在行_ . ! ~ * ' ( ) 上,您将2个项目推送到values数组,而不是推送2个值的数组或具有x和y值的对象。因此,highcharts认为你有两倍的积分,而且它们是连续的。
  3. 更正后的循环:

    values.push(timestamp, item.y);

    http://jsfiddle.net/gq385b16/1/