web-dev-qa-db-fra.com

Equivalent D3 4.0 rangeRoundBands?

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

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

A partir de la version 4.0 de D3, d3.scale.ordinal() est maintenant d3.scaleOrdinal Et rangeRoundBands semble avoir disparu.

> d3.scaleOrdinal()

{ 
  [Function: scale]
  domain: [Function],
  range: [Function],
  unknown: [Function],
  copy: [Function] 
}

Quel serait l'équivalent D3 v4 de ce code (d'après Mike Bostock exemple d'histogramme )?

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

Dans D3 4.x rangeRoundBands a été déplacé vers la nouvelle échelle Bande :

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

Cela équivaut à:

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

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

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

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

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