D3js X轴转换在控制台中记录NaN错误

时间:2015-04-24 20:36:45

标签: javascript d3.js

当我转换X轴时,控制台会记录错误(转换可能有点不正确,因为它以我自己的语言记录):

Unexpected value "translate(NaN, 0)" when parsing transform-attribute

错误似乎来自axis.js:154。虽然记录了错误,但一切正常。

我调试了问题,发现第154行dundefined。这导致以下结果:

var v0 = x0(d); //v0 = NaN
isFinite(v0) //false
x1(d) //NaN
(isFinite(v0) ? v0 : x1(d)) // false ? NaN : NaN -> Always returns NaN
return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)" //Alwaysreturns "translate(NaN, 0)" for d = undefined

我使用D3的3.5.5版本,我的代码如下(仅相关部分):

var x = d3.scale.linear().range([0, getWidthWithoutMargin()]);

var xAxis = d3.svg.axis();
xAxis.scale(x);
xAxis.orient("bottom");
xAxis.tickFormat(formatFunction);
xAxis.ticks(1);

x.domain([0, getMaxPercentagePrediction()]);

//The chart is created after this

//When updating I do this:

xAxis.tickValues([0, getMaxPercentagePrediction()]);

var xAxisElement = d3.select(".chart g").select(".x.axis");
    xAxisElement.call(xAxis);

getWidthWithoutMargingetMaxPercentagePrediction 始终会返回一个数字(而不是undefined或其他内容)。即使我用硬编码值替换它们,仍会记录错误。

我希望有人可以帮我解决这个问题。

提前致谢!

0 个答案:

没有答案