2015-05-29 75 views
0

我有一些數據,我想用n3-charts來繪製,這就是我所擁有的。n3-charts以日期爲座標軸的數據作爲x軸

$scope.options = { 
      axes: { 
      x: { 
       key: "dateRecorded", 
       type: "date", 
       labelFunction: function(d) { return d3.time.format("%Y-%m-%d").parse(d); } 
      }, 
      y: {type: "linear"} 
      }, 
      series: [ 
      { 
       y: "weight", 
       key: "weight", 
       label: "Weight", 
       color: "#2ca02c" 
      } 
      ] 
     }; 

這是我想繪製的一段樣本數據。

[{dateRecorded: "2015-04-15", weight: 15}, {dateRecorded: 2015-04-16, weight: 16}, {dateRecorded: "2015-04-17", weight: 17}] 

圖表顯示,但沒有繪製數據。瀏覽器控制檯輸出以下內容。

TypeError: undefined is not a function 
    at d3_time_parseFullYear 

所以它不能正確解析日期,但我不知道我做錯了什麼。

任何幫助,將不勝感激。

回答

1

這是一個數據問題,你的數據應該是這樣的,然後標籤將正確顯示。

[ 
{dateRecorded: new Date("2015-04-15"), weight: 15}, 
{dateRecorded: new Date("2015-04-16"), weight: 16}, 
{dateRecorded: new Date("2015-04-17"), weight: 17} 
] 

而且爲了使其工作移除軸選項下面一行:

labelFunction: function(d) { return d3.time.format("%Y-%m-%d").parse(d); 

看到有關類型文檔的解釋:

類型:可選,可以是'日期'或'線性'(默認爲'線性')。如果設置爲'日期',圖表將期望日期對象爲橫座標。圖表本身不做任何轉換,所以行爲基本上是D3.js的時間尺度。

不需要labelFunction。

0

刪除標籤功能它是多餘的 - 類型:日期足夠了