2017-09-13 36 views
0

d3.jsを使用してヒートマップを作成しています。私のデータは、私が最大と最小の年を取り出したオブジェクトです。私は私のx軸を初期化するためにd3.timeScale()を使用すると、すべての私の年がxの同じ位置にレンダリングするとエラーを取得イムはタイムスケールを使用したD3.jsエラー(パスはNaN)

d3.min.js:2 Error: <path> attribute d: Expected number, "MNaN,6V0.5HNaNV6". (anonymous) @ d3.min.js:2 13d3.min.js:2 Error: <g> attribute transform: Expected number, "translate(NaN,0)".

コードの一部を(これはコンソールに次のエラーが原因です)これは、このエラーの原因になっているか疑問に思う

const MIN_DATE = new Date(MIN_YEAR, 0), 
    MAX_DATE = new Date(MAX_YEAR, 0); 

var x = d3.scaleTime() 
    .domain([MIN_DATE, MAX_DATE]) 
    .range(0, WIDTH); 

var svg = d3.select('.chart') 
    .attr('width', WIDTH + margins.left + margins.right) 
    .attr('height', HEIGHT + margins.top + margins.bottom); 

var g = svg.append('g') 
    .attr('transform', 'translate(' + margins.left + ',' + margins.top + ')'); 

g.append('g') 
    .attr('class', 'axis') 
    .attr('transform', 'translate(0,' + HEIGHT + ')') 
    .call(d3.axisBottom(x)); 

イムをタイムスケールを作り、軸がここに示されている関係、先ほどと同様のものを作ったが、私が持っていた唯一の違い私のように日付を渡したことがありました私の日付コンストラクタに文字列、ここで私は年として値を持っています。 D3スケールで

{ 
year: 2012, 
month: 3, 
variance: 0.703 
}, 
Im using the year in as my `MIN_YEAR`, which i recieve through an API call. The year is a number. `MIN_YEAR` and `MAX_YEAR` are being assigned correctly. 

答えて

1

、あなたはrangeに配列を渡す必要があります。 APIは明確である:

範囲が指定されている場合は

は、値の指定配列にスケールの範囲を設定します。 (強調鉱山)

したがって、それは次のようになります。

.range([0, WIDTH]); 
+0

ありがとうございました。あなたが監督する傾向があるものの1つ、私は問題に深く潜り込んでいて、私が角括弧を欠いていることを無視していました – abhinavm93

関連する問題