brassic_lint
brassic_lint

Reputation: 11

Add multiple data points to a series

I am trying to build a chart from JS that has multiple "y:" data points in multiple series. I have got the chart working fine using a static configuration, but am struggling to get it to work when adding the points via the API.

I am trying to acheive:

'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
        }
     ]
  },

My code so far looks like this:

    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);

This produces a "TypeError: Cannot call method 'push' of undefined"

Upvotes: 1

Views: 2035

Answers (1)

Paweł Fus
Paweł Fus

Reputation: 45079

Just use Highcharts API's series.addPoint().

Upvotes: 1

Related Questions