Javascript Highcharts错误#15:www.Highcharts.com/errors/15

Javascript Highcharts错误#15:www.Highcharts.com/errors/15,javascript,highcharts,Javascript,Highcharts,我正试图使用雅虎财经数据生成一个像这样的高图表烛台图表。但我一直在犯这样的错误: 高位图表错误#15 Highcharts希望对数据进行排序 当您试图创建数据未按升序X排序的直线系列或股票图表时,会发生这种情况。出于性能原因,Highcharts不会对数据进行排序,而是要求实现者对数据进行预排序 我的代码如下 $(function () { $.getJSON('http://websitescraper.heroku.com/?url=http://ichart.finance.y

我正试图使用雅虎财经数据生成一个像这样的高图表烛台图表。但我一直在犯这样的错误: 高位图表错误#15

Highcharts希望对数据进行排序

当您试图创建数据未按升序X排序的直线系列或股票图表时,会发生这种情况。出于性能原因,Highcharts不会对数据进行排序,而是要求实现者对数据进行预排序

我的代码如下

$(function () {


    $.getJSON('http://websitescraper.heroku.com/?url=http://ichart.finance.yahoo.com/table.csv?s=000338.sz&callback=?', function (csvdata) {
        //console.log(csvdata);
        var arr = csvdata.split('\n').slice(1);

        var data = [];

        for (var i = arr.length-1; i >= 0; --i) {
            //console.log(arr[i]);
            var line = arr[i].split(',');
            line[0] = Date.parse(line[0]);

            line = $.map(line, function(v) {
                return parseFloat(v);
            });
            line = line.slice(0,6);
            //var j = JSON.stringify(line.slice(0,0+6));
            console.log(line);
            data.push(line);
        }
        data = JSON.stringify(data.slice(1));
        console.log(data);
        run(data);
    });




});

function run(data) {

    // split the data set into ohlc and volume
    var ohlc = [],
            volume = [],
            dataLength = data.length,
    // set the allowed units for data grouping
            /*groupingUnits = [[
                'week',                         // unit name
                [1]                             // allowed multiples
            ], [
                'month',
                [1, 2, 3, 4, 6]
            ]],*/

            i = 0;

    for (i; i < dataLength; i += 1) {
        ohlc.push([
            data[i][0], // the date
            data[i][1], // open
            data[i][2], // high
            data[i][3], // low
            data[i][4] // close
        ]);

        volume.push([
            data[i][0], // the date
            data[i][5] // the volume
        ]);
    }


    // create the chart
    $('#container2').highcharts('StockChart', {

        rangeSelector: {
            selected: 1
        },

        title: {
            text: 'Shanghai Composite Index Historical'
        },

        yAxis: [{
            labels: {
                align: 'right',
                x: -3
            },
            title: {
                text: 'OHLC'
            },
            height: '60%',
            lineWidth: 2
        }, {
            labels: {
                align: 'right',
                x: -3
            },
            title: {
                text: 'Volume'
            },
            top: '65%',
            height: '35%',
            offset: 0,
            lineWidth: 2
        }],

        series: [{
            type: 'candlestick',
            upLineColor: 'red',
            downLineColor: 'green',
            name: 'SSE',
            data: ohlc,
            /*dataGrouping: {
                units: groupingUnits
            }*/
        }, {
            type: 'column',
            name: 'Volume',
            data: volume,
            yAxis: 1
            /*dataGrouping: {
                units: groupingUnits
            }*/
        }]
    });
}
$(函数(){
$.getJSON('http://websitescraper.heroku.com/?url=http://ichart.finance.yahoo.com/table.csv?s=000338.sz&callback=?,函数(csvdata){
//console.log(csvdata);
var arr=csvdata.split('\n').slice(1);
var数据=[];
对于(变量i=arr.length-1;i>=0;--i){
//控制台日志(arr[i]);
var line=arr[i]。拆分(',');
第[0]行=Date.parse(第[0]行);
行=$.map(行,函数(v){
返回浮点数(v);
});
直线=直线切片(0,6);
//var j=JSON.stringify(line.slice(0,0+6));
控制台日志(行);
数据推送(行);
}
data=JSON.stringify(data.slice(1));
控制台日志(数据);
运行(数据);
});
});
函数运行(数据){
//将数据集拆分为ohlc和卷
var ohlc=[],
卷=[],
dataLength=data.length,
//设置允许的数据分组单位
/*分组单元=[[
'周',//单位名称
[1] //允许的倍数
], [
“月”,
[1, 2, 3, 4, 6]
]],*/
i=0;
对于(i;i

有人能帮忙吗?非常感谢

问题在于
data=JSON.stringify(data.slice(1))。它将数组转换为字符串,因此无法识别它。删除
JSON.stringify
,它将正常工作:

data = data.slice(1);

这是您的名片。

非常感谢您!这让我很开心!