Actualización de la serie Highchart en javascript

Estoy intentando actualizar una serie de Highchart generando una nueva matriz con los datos actuales de la base de datos. Pero por alguna razón solo puedo encontrar información sobre cómo revisar los datos de uno en uno. Una vez que se crea un gráfico, solo se vuelve a ejecutar el mismo código para que las etiquetas, etc. no cambien, solo cambian [pointStart] y [data].

¿Hay una manera de actualizar todos los datos en su conjunto? Tampoco he conseguido que un bucle for funcione correctamente.

function generateSeries(data){
    var cData = [];
    var rollup = data.rollupData;
    cData['type'] = 'line';
    cData['pointStart'] = convertDateTime(data.lastMinute);
    cData['pointInterval'] = 60 * 1000;
    for(var i in rollup){
        var x = new Array();
        var v = rollup[i].rttSystem;
        switch(v){
            case('line'): var vn = ' (L)'; break;
            case('node'): var vn = ' (N)'; break;
            case('module'): var vn = ' (M)'; break;
            default: var vn = '';
        }
        x['name'] = rollup[i].rollupName + vn;
        x['data'] = rollup[i].kpiData;
        cData.push(x);
    }
    return cData;
}

la salida de la matriz se ve como [0: ['nombre': 'California', 'datos': [0.002, 0.003 ...], 1: ['nombre': 'Oklahoma', 'datos': [0.001, 0.002 ...], 'type': 'line', 'pointStart': '', 'pointInterval': 60 * 1000]

var chart = new Highcharts.Chart({
    chart: {
    ...
    },
    series: generateSeries(data)
    }, function(chart){
        setInterval(function(){
            var newSeries = generateSeries(data);
            // Udate the series again with the current data
        },60000);
    }
});

Actualización: esto hace la serie pero no el pointStart.

if(chart.series.length > 1){
    var s = 0;
    for(var i in newSeries){
        chart.series[s].setData(newSeries[i].data);
        chart.series[s].pointStart = newSeries[i].pointStart;
        s++;
    }
}else{
    chart.series[0].setData(newSeries[0].data);
    chart.series[0].pointStart = newSeries[0].pointStart;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta