web-dev-qa-db-ja.com

d3バージョン4の「d3.svg.axis()」とは何ですか?

以下の行を新しいバージョンのD3 APIに置き換えるにはどうすればよいですか?

既にscale.linear()scaleLinear()に置き換えました

var xRange = d3.scaleLinear()
    .domain([OIResults.min,OIResults.max]).range([40, 360]);

var yRange = d3.scaleLinear()
    .domain(y_domain).range([360, 40]);

以下の行は、新しいAPIに従って交換する必要があります。

var xAxis = d3.svg.axis().scale(xRange).tickFormat(function(d) { return d.x;});
var yAxis = d3.svg.axis().scale(yRange).orient("left");
41

D3 v4 API こちらchangelog によると:

D3 4.0は、デフォルトのスタイルと短い構文を提供します。 d3.svg.axisとaxis.orientの代わりに、D3 4.0は各方向に4つのコンストラクターd3.axisTop、d3.axisRight、d3.axisBottom、d3.axisLeftを提供するようになりました。

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

var xAxis = d3.axisBottom(xRange).tickFormat(function(d){ return d.x;});
var yAxis = d3.axisLeft(yRange);

PS:元の行にorientを表示しなかったため、目盛りを軸の下にしたいと思っていますが、これは通常そうです。

PPS:執筆時点では、リンクされたドキュメントはD3 v4に適用されます。警告、講師:いつでも変更できます(以下のコメントを参照)。

56
Gerardo Furtado