2013-03-04 22 views
0

我會說,它以前工作。現在,我已經更新到最新的Highcharts版本。而且,不知道爲什麼,它突然想要顯示我的CSV文件的第一個「列」。它看起來像這樣:如何讓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文件的第一位添加「年」時),但我只能得到比錯誤消息...

感謝您的任何提示!

+1

你能澄清的問題是什麼? – aqua 2013-03-04 10:42:42

回答

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); 
     }); 
    }); 
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); 
       }); 
+0

謝謝你。但是,我看到的唯一區別是「itemNo-1」。除此之外,它沒有幫助,我認爲問題在於「標題行包含系列名稱」部分。在那裏,在「$ .each」-loop中,應該有如「if(itemNo == 0){do nothing} elseif(item!=''){....}」。但由於我不明白的原因,這會阻止該部分的任何計算。 – luftikus143 2013-03-05 05:57:27

+0

那麼哪些值不正確?我使用itemNo-1,因爲當你解析並且如果(itemNo == 0),那麼你將值放到類別中。它是正確的,但是當你有ie itemNo == 1時,你需要使用itemNo-1,因爲系列從0開始編號,而不是從0開始編號。因此,如果你沒有itemNo-1,那麼你會有一個空的系列。 – 2013-03-06 09:05:18