Как импортировать массив из двух значений в highcharts из файла csv

Я попытался успешно импортировать один массив в highcharts из файла csv, точно так же, как data- from-csv сказал. И я также могу использовать такие серии, как

        series: [{
        name: 'Tokyo',
        data:[[0, 15], [1, 50], [2, 56.5], [4, 46.5], [8, 22.1], [16, 20]
    }, {
        name: 'London',
        data: [[0, 10], [1, 50], [2, 50], [4, 40], [8, 22], [16, 25]
    }]

в поле JavaScript.

Но когда я хочу импортировать массив двух значений из файла csv, диаграмма не работает. код

$.get('data.csv', function(data) {
// Split the lines
var lines = data.split('\n');
$.each(lines, function(lineNo, line) {
    var items = line.split(';');

    // the rest of the lines contain data with their name in the first position
    var series = {
        data: []
    };
    $.each(items, function(itemNo, item) {
        if (itemNo == 0) {
            series.name = item;
        } else {
            series.data.push(parseFloat(item));
        }
    });
    options.series.push(series);
});

var chart = new Highcharts.Chart(options);
});

данные.csv:

data; [1, 12.97]; [4, 52.16]; [16, 208.96]; [64, 663.84]

диаграммы могут отображать имя массива «данные», но не могут отображать линию, может ли кто-нибудь помочь мне с этим, спасибо~


person Leoest    schedule 12.03.2012    source источник


Ответы (1)


Проблема в том, что элемент в следующей строке

series.data.push(parseFloat(item));

не число с плавающей запятой, а массив из двух значений. Я думаю, вы хотите, чтобы строка читалась примерно так:

series.data.push(JSON.parse(item));
person Steve Wilhelm    schedule 12.03.2012
comment
Да, вы правы, я искал API javascript и обнаружил, что parseFloat возвращает только первое число в строке. Но JSON.parse — это API jquery, мы не можем использовать его в функции javascript. - person Leoest; 13.03.2012