Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Highcharts 如何在高库存图表中显示对象数组_Highcharts_Highstock - Fatal编程技术网

Highcharts 如何在高库存图表中显示对象数组

Highcharts 如何在高库存图表中显示对象数组,highcharts,highstock,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": 217

我有一组像这样的对象

{
"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道具,以便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);

但是由于某些原因,数据没有显示在图表中,请在这方面指导我

我不确定您为什么要这样做循环,但它有一些问题

  • 你正在反转阵列。除非您的日期以相反的顺序存储,否则这将导致问题。Highcharts希望对X数据进行排序
  • values.push(timestamp,item.y)行上将2个项目推送到值数组中,而不是推送2个值的数组或具有x和y值的对象。所以,海图认为你有两个点,而且它们是连续的
  • 纠正的循环:

      var values = [];
      for (var i = 0; i < data.length; i++) {
        var item = {};
        item.y = data[i].power;
        item.x = new Date(data[i]['date']).getTime();
        values.push(item);
      }   
    
    var值=[];
    对于(变量i=0;i

    我不知道你为什么要这样做,但它有一些问题

  • 你正在反转阵列。除非您的日期以相反的顺序存储,否则这将导致问题。Highcharts希望对X数据进行排序
  • values.push(timestamp,item.y)行上将2个项目推送到值数组中,而不是推送2个值的数组或具有x和y值的对象。所以,海图认为你有两个点,而且它们是连续的
  • 纠正的循环:

      var values = [];
      for (var i = 0; i < data.length; i++) {
        var item = {};
        item.y = data[i].power;
        item.x = new Date(data[i]['date']).getTime();
        values.push(item);
      }   
    
    var值=[];
    对于(变量i=0;i

    perfect,如果我想让此图表每秒刷新一次,请使用图表。系列[0]。setData(值)很好或图表。系列[0]。添加点(值,真,真)如果您只是添加新点,请使用添加点。如果要替换数据,请使用setDataperfect;如果要使此图表每秒刷新一次,请使用addPoints。chart.series[0]。setData(values)良好或chart.series[0]。addPoints(values,true,true)。如果只是添加新点,请使用addPoints。如果要替换数据,请使用setData