0

我会说它以前有效。现在,我同时更新到最新的 Highcharts 版本。而且,不知道为什么,它突然想要绝对显示我的 CSV 文件的第一个“列”。它看起来像这样:

,Switzerland,Europe,Global
1980,0.02854,0.01931,0.00547
1981,0.02898,0.01931,0.00549

Highcharts(“我的代码”)想要显示这个“”列。如果我将其更改为“年”或“类别”,那都是一样的。我在图例中没有三个,而是四个条目。

Highcharts 代码如下所示:

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

        // header line containes series name
        if (lineNo === 0)
        {
            $.each(items, function(itemNo, item)
            {
                if (item!='')
                {
                    if(item == 'Switzerland')
                    {
                        options.series.push(
                        {
                            name:item,
                            lineWidth: 5, 
                            data:[]
                        });
                    }
                    else
                    {
                        options.series.push(
                        {
                            name:item,
                            data:[]
                        });
                    }
                }
            });
        }
        ....

我试图改变线路

  if (item!='')

类似于

  if ((item!='') && (item!=' '))

或者

  if ((item!='') && (item!='Years'))

(当我在 CSV 文件的第一个位置添加“年”时),但我只收到错误消息......

感谢您的任何提示!

4

2 回答 2

0

我从过去找到了类似的示例,问题仅出在索引上,该索引在将点推送到系列期间使用。解析器:

 var options = {
                chart: {
                    renderTo: 'container',
                    zoomType:'xy'
                },
                xAxis:{
                    categories:[],
                    tickInterval:10,
                    tickmarkPlacement:'on'
                },
                title: {
                    text: 'Oviedo hoy'
                },
                series: []
            };

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

                        // header line containes series name
                        if (lineNo === 0) {

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

                                if(itemNo == 0)
                                    options.xAxis.categories.push(item)
                                else
                                    options.series[itemNo-1].data.push(parseFloat(item));

                            });
                        }
                    });

                    var chart = new Highcharts.Chart(options);
                });
于 2013-03-04T11:51:15.617 回答
0

经过一番来回,这是它现在的工作方式:

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

            // header line containes series name
            if (lineNo === 0)
            {
                $.each(items, function(itemNo, item)
                {
                    if (itemNo > 0)
                    {
                        if(item == 'Switzerland')
                        {
                            options.series.push(
                            {
                                name:item,
                                lineWidth: 5, 
                                data:[]
                            });
                        }
                        else
                        {
                            options.series.push(
                            {
                                name:item,
                                data:[]
                            });
                        }
                    }
                });
            }
            // the rest of the lines contain data with their name in the first position
            else
            {
                $.each(items, function(itemNo, item)
                {
                    if(itemNo == 0)
                    {
                        options.xAxis.categories.push(item);
                    }
                    else if (item == "null")
                    {
                        options.series[itemNo-1].data.push(null);
                    }
                    else
                    {
                        options.series[itemNo-1].data.push(parseFloat(item));
                    }
                });
            }
        });

        //console.log(options.series);
        var chart = new Highcharts.Chart(options);
        });
    });
于 2013-03-11T07:59:44.333 回答