我正在尝试绘制XY图,其X轴上有时间单位:
时间以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轴的定义有什么问题吗?
答案 0 :(得分:0)
d3.extent
方法将数据数组作为输入参数,将访问器方法作为第二个参数。访问器告诉应该使用数组的哪个属性来计算范围。您可能希望将域定义为
// Use the time extent as domain
x.domain(d3.extent(data.e1, function (d) { return d.time; }));
此致