2015-10-16 101 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