D3 4.0 rangeRoundBands équivalent?

Je vois beaucoup de code D3 qui a quelque chose comme ça:

var x = d3.scale.ordinal() .rangeRoundBands([0, width], .1); 

D3 version 4.0 d3.scale.ordinal() est maintenant d3.scaleOrdinal et rangeRoundBands semble disparaître.

 > d3.scaleOrdinal() { [Function: scale] domain: [Function], range: [Function], unknown: [Function], copy: [Function] } 

Quel serait l'équivalent D3 v4 de ce code (de l' exemple de diagramme à barres de Mike Bostock)?

 var x = d3.scale.ordinal() .rangeRoundBands([0, width], .1); 

Dans D3 4.x rangeRoundBands été déplacé vers la nouvelle échelle de bande :

 d3.scaleBand() .range([range]) .round([round]); 

Cela équivaut à:

 d3.scaleBand() .rangeRound([range]); 

Voici l'API: https://github.com/d3/d3-scale#band-scales

 var x = d3.scale.ordinal() .rangeRoundBands([0, width], .1); 

Ce qui précède calcule les bandes et établit le rembourrage entre la bande. En v4, l'équivalent est

 var x = d3.scaleBand() .rangeRound([0, width]) .padding(0.1); 
 var svg = d3.select("svg"), margin = {top: 20, right: 20, bottom: 30, left: 60}, width = +svg.attr("width") - margin.left - margin.right, height = +svg.attr("height") - margin.top - margin.bottom; var x = d3.scaleBand().rangeRound([0, width]).padding(0.1), y = d3.scaleLinear().rangeRound([height, 0]); var g = svg.append("g") .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); d3.tsv("data.txt", function(d) { dy = +dy; return d; }, function(error, data) { if (error) throw error; x.domain(data.map(function(d) { return dx; })); y.domain([0, d3.max(data, function(d) { return dy; })]); 

Une syntaxe pouvant être lancée pour un graphique classique à l'aide de scaleBand et scaleLinear.