将多个数据点添加到系列中

时间:2014-01-15 13:06:28

标签: highcharts

我正在尝试从JS构建一个图表,其中包含多个系列中的多个“y:”数据点。我使用静态配置使图表工作正常,但在通过API添加点时,我很难让它工作。

我正在努力实现:

'series':[
  {
     'name':'Series 1',
     'color':'#FF8500',
     'data':[
        {
           'y':1.0002193448599428
        },
        {
           'y':0.4999027241865406
        },
        {
           'y':4.499986649534549
        },
        {
           'y':0.4998817439627601
        }
     ]
  },
  {
     'name':'Series 2',
     'color':'#66B3FF',
     'data':[
        {
           'y':12.99999999901047
        },
        {
           'y':13.00000000082946
        },
        {
           'y':18.99999999841384
        },
        {
           'y':5.000000001018634
        }
     ]
  },

到目前为止我的代码看起来像这样:

    var options = {
    'chart':{
        'renderTo':'MyChart',
        'zoomType':'xy',
        'defaultSeriesType':'bar',
        'width':880
        },
    <snip>
    ...
    </snip>
    'yAxis':{
        'title':{
            'text':'Seconds'
            },
        },
    'xAxis':{
        'title':{
            'text':'Objects'
            },
     'categories': [],
     'opposite':true
    },

    'series':[
        {
        'name':'Series 1',
        'color':'#FF8500',
        'data':[]
        },
        'series':[
        {
        'name':'Series 2',
    'color':'#66B3FF',
    'data':[]
        }
    ]
};

options.chart.renderTo = targetdiv;

//Categories add perfectly here:
$.each(harfile.log.entries, function(i, val) {
options.xAxis.categories.push(val.request.url);
console.log(val.request.url);
});

$.each(harfile.log.entries, function(i, val) {
//need to do some logic to catch "-1" for all these values...
options.series[0].data.push("y:" + val.timings.receive); 
    }); 

$.each(harfile.log.entries, function(i, val) {
//need to do some logic to catch "-1" for all these values...
options.series[1].data.push(y:" + val.timings.receive); 
    });

console.log(options.series[0].data);

这会产生一个“TypeError:无法调用未定义的方法'push'

1 个答案:

答案 0 :(得分:1)

只需使用Highcharts API的series.addPoint()