D3多线图x轴返回NaN

时间:2014-04-21 10:16:31

标签: javascript d3.js

我正在尝试绘制XY图,其X轴上有时间单位:

http://jsfiddle.net/VfcLa/

时间以ISO格式存储在数据集合中,我使用以下方法解析它:

var parseDate = d3.time.format("%Y-%m-%dT%H:%M:%S.%LZ").parse;

使用时标功能生成x轴刻度:

var x = d3.time.scale().range([0, width]);

x轴域定义如下:

x.domain(d3.extent(data.e1), function (d) {        return d.time;    });

使用以下函数生成绘图线:

   var line = d3.svg.line()
        .interpolate("basis")
        .x(function(d) {
            return x(d.time);
        })
        .y(function(d) {
            return y(d.value);
        });

每次使用解析的ISO日期参数调用x()函数时,它都会返回NaN

d =“MNaN,0.3727223712260468LNaN,3.551619373753615CNaN,6.730516376281183,NaN时,13.088310381336319,NaN时,15.327467421250939CNaN,17.56662446116556,NaN时,15.687144535939666,NaN时,12.446127138207757CNaN,9.205109740475848,NaN时,4.602554870237924,NaN时,5.316237018898292CNaN,6.02991916755866,NaN的,12.05983833511732,NaN时,17.974294680466606CNaN,23.888751025815896,NaN时,29.687744548955813,NaN时,29.192971911030863CNaN,28.698199273105914,NaN时,21.9096604741161,NaN时,16.400308154832988CNaN,10.890955835549873,NaN时,6.660789995973459,NaN时,7.246710113817281CNaN,7.832630231661104,NaN时,13.234636306925163,NaN时,34.457639028148215 CNaN,55.68064174937127,NaN时,92.72464111655331,NaN时,93.00921342738123CNaN,93.29378573820912,NaN时,56.818930992682894,NaN时,36.501416168287236CNaN,16.18390134389157,NaN时,12.02372644062648,NaN时,9.943638988993934LNaN,7.8635515373613885"

有人知道我对x轴的定义有什么问题吗?

1 个答案:

答案 0 :(得分:0)

d3.extent方法将数据数组作为输入参数,将访问器方法作为第二个参数。访问器告诉应该使用数组的哪个属性来计算范围。您可能希望将域定义为

// Use the time extent as domain
x.domain(d3.extent(data.e1, function (d) { return d.time; }));

此致