HighChart线图未显示

时间:2017-07-25 15:37:13

标签: javascript highcharts

我正在使用csv文件中的数据来使用Highchart生成折线图。这是我的代码:

            /* Define Initial and basic Options */
            var options = {
                chart: {
                    type: 'line',
                    renderTo: 'graph_container'
                },

                title: {
                    text: 'FanniemaeAcquisition Cash Flow'
                },

                yAxis: {
                    title: {
                        text: 'Amount($)'
                    }
                },
                series: []
           };

            /* Parse CSV File */

            $.get('{% static "data/FanniemaeAcquisitions.csv" %}', function(csv) {
                var lines = csv.split('\n');
                var series = {
                    name: '',
                    data: []
                };
                $.each(lines, function (lineNo, line) {
                    var items = line.split(',');

                $.each(items, function (itemNo, item) {
                        if(itemNo == 1){
                            if (lineNo == 0){
                                series.name = item;
                            } else {
                                series.data.push(parseFloat(item));
                            }
                        }
                    });
                });
                options.series.push(series);
                console.log(options.series);
            });
            // Create the chart
            var chart = new Highcharts.Chart(options);

然而这不起作用。我尝试通过手动输入数据来测试它:

                 series: [{
                     name: 'Installation',
                     data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
                 },

并且工作正常。所以我看一下传递给series的变量。有效的(手动输入):

enter image description here

不起作用的那个(来自CSV):

enter image description here

有什么想法吗?

编辑:好的。这里发生了一些奇怪的事情。 Highchart没有显示在网页上,但它显示我下载为PNG时。更奇怪的部分是它在网页上显示如果我手动添加数字值但是当我从CSV中提取值时图表消失了......但是当我下载为PNG时它显示图表...任何想法??

第二次编辑:好的,所以当我这样做时:console.log(JSON.stringify(options.series[0].data)); 什么都没有显示出来。这意味着在生成图形之后会出现从csv文件解析的值。那么我该如何解决这个问题呢?洛尔

1 个答案:

答案 0 :(得分:0)

问题是由于Javascript的异步问题。我只是将我的函数包装在$.when中,并且它有效!

相关问题