Javascript D3 4.0量程和等效量程?

Javascript D3 4.0量程和等效量程?,javascript,d3.js,Javascript,D3.js,我看到很多D3代码都是这样的: var x = d3.scale.ordinal() .rangeRoundBands([0, width], .1); 从D3版本4.0开始,D3.scale.ordinal()现在是D3.scaleOrdinal和rangeRoundBands似乎消失了 > d3.scaleOrdinal() { [Function: scale] domain: [Function], range: [Function], unknown:

我看到很多D3代码都是这样的:

var x = d3.scale.ordinal()
  .rangeRoundBands([0, width], .1);
从D3版本4.0开始,
D3.scale.ordinal()
现在是
D3.scaleOrdinal
rangeRoundBands
似乎消失了

> d3.scaleOrdinal()

{ 
  [Function: scale]
  domain: [Function],
  range: [Function],
  unknown: [Function],
  copy: [Function] 
}
这段代码的D3V4等价物(来自Mike Bostock)是什么


在D3 4中,x
rangeRoundBands
被移动到新的波段刻度:

这相当于:

d3.scaleBand()
    .rangeRound([range]);
以下是API:

上面计算了标注栏并设置标注栏之间的填充。在v4中,等价物是

var x = d3.scaleBand()
    .rangeRound([0, width])
    .padding(0.1);

经典图表的可启动语法,同时使用scaleBand和scaleLinear。

因此,最后替换为
var x=d3.scaleBand().rangeRound([0,width])
。谢谢你知道,我真的认为他们把这一切都拆散是个坏主意。这只会让一切变得更困难!
d3.scaleBand()
    .rangeRound([range]);
var x = d3.scale.ordinal()
    .rangeRoundBands([0, width], .1);
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) {
  d.y = +d.y;
  return d;
}, function(error, data) {
  if (error) throw error;

  x.domain(data.map(function(d) { return d.x; }));
  y.domain([0, d3.max(data, function(d) { return d.y; })]);