2013-02-05 69 views
0

我想顯示來自具有兩個不同軸的CSV數據的圖表。CSV無法在沒有硬編碼的情況下在Dygraph中顯示雙軸

我成功地做到了這一點,但有一些限制。

這裏是我的CSV文件的樣本,但是列數可以不同,也列標籤:

<div id="div_g" style="width:900px; height:400px; border: 1px solid black"></div> 
<script type="text/javascript" src="http://www.dygraphs.com/dygraph-combined.js"></script> 

<script> 

     var g = new Dygraph(
     document.getElementById("div_g"), 
     "enregistrement-subset0.csv", 
     { 
      labels:["date","Tch","HyR","CO2"], //the line I'd like to remove 
      colors:["red", "blue", "green"], 
      "CO2": { axis: { 
       yAxisLabelFormatter: function (v) { return v.toPrecision(2); }, 
       yValueFormatter: function (v) { return v.toPrecision(2); } 
      }}, 
      axes: { 
       y: { 
        valueFormatter: function(y) { 
         return y.toPrecision(3); 
        }, 
        axisLabelFormatter: function(y) { 
         return y; 
        } 
       } 
      }, 
     }); 
</script> 

我想:

"date","Tch","HyR","CO2" 
2012/12/23-10:41,22.2,43,2379.52 
2012/12/23-10:42,22.2,44,2319.36 
2012/12/23-10:43,22.2,44,2319.36 

我可以使用此代碼顯示它刪除「標籤:」行,但這樣做,第二軸消失。

的的jsfiddle因爲這是這裏http://jsfiddle.net/lauhub/jY2m6/

另外,保持該行使得在顯示所述圖表中產生警告。

我也想從CSV文件中動態加載標籤,因爲列和名稱的數量可能會有所不同。

是否可以用dygraphs以編程方式執行此操作?怎麼樣 ?

感謝

回答

1

這裏是Dygraphs谷歌組發表哥尼斯堡答案: 簡單的答案是,你的CSV並不認爲0列標記爲[日期],它認爲它標記爲[「日」] (帶引號)

刪除周圍的CSV引號,你會被罰款:

date,Tch,HyR,CO2 
2012/12/23-10:41,22.2,43,2379.52 

http://jsfiddle.net/KUdsY/2對於這個動作。

此外,我推薦使用新方法來指定軸和系列,使用http://blog.dygraphs.com/2012/12/the-new-and-better-way-to-specify.html中指定的程序,這會使您的解決方案看起來像http://jsfiddle.net/KUdsY/4/

我張貼下面的代碼(從最後一個環節複製):

var csv = 'date,Tch,HyR,CO2\n' + 
    '2012/12/23-10:41,22.2,43,2379.52\n' + 
    '2012/12/23-10:42,22.2,44,2319.36\n' + 
    '2012/12/23-10:43,22.2,44,2319.36\n'; 
var g = new Dygraph(
document.getElementById("graph"), 
csv, { 
    // labels: ["date", "Tch", "HyR", "CO2"], //the line I'd like to remove 
    colors: ["red", "blue", "green"], 
    series : { 
     "CO2": { 
      axis : 'y2' 
     } 
    }, 
    axes: { 
     y: { 
      valueFormatter: function (y) { 
       return y.toPrecision(3); 
      }, 
      axisLabelFormatter: function (y) { 
       return y; 
      } 
     }, 
     y2: { 
      yAxisLabelFormatter: function (v) { 
       return v.toPrecision(2); 
      }, 
      yValueFormatter: function (v) { 
       return v.toPrecision(2); 
      } 
     } 
    } 
}); 
相關問題