2015-10-16 106 views
0

我有兩個javasrcript數組作爲d3.js折線圖中的數據傳遞。我想將字符串值映射爲x軸域。但它沒有正確映射。 Data2數組包含年份作爲字符串值。d3折線圖字符串作爲x軸域

xScale = d3.scale.linear().range([MARGINS.left, WIDTH - MARGINS.right]).domain(data2.map(function (d) { return d.year; })), 

然後lineGen(data2)給出NaN值。

的jsfiddle這裏: http://jsfiddle.net/nyngd3sz/

很新的d3.js.這可能是一個小錯誤。

謝謝。

+0

如果值看起來像數字,那麼'lineGen(data2.map(Number))'應該有幫助。或者在你的其他代碼中,'return + d.year; }'強制許多d3例子的數字... – dandavis

+0

值不是問題的數字。數據是字符串。如「地區1」,「地區2」等 –

回答

3

由於值是字符串而不是數字,所以您將不得不使用序數比例。請參閱更多here

試試這個方法。

var xScale = d3.scale.ordinal().range([MARGINS.left, WIDTH - MARGINS.right]).domain(data2.map(function (d) { return d.year; })) 
+1

使用範圍,而不是範圍,它的工作完美。非常感謝你。 –

+0

很高興幫助:) – Gilsha