NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #457 most downloaded on npm
Array manipulation, ordering, searching, summarizing, etc.
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 1 weeks to 6 months
Most releases are documented
notes for 53 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
61 releases · first in 2015
Fix the return value of d3.medianIndex and d3.quantileIndex when the data contains any missing values. #275
Fix threshold generation when input is empty or has no deviation. #271
One column per quarter.
d3.ticks now tries harder to generate at least one tick. #264
Fix mutation of user-owned thresholds in d3.bin. #263
Add d3.blur . #151 Add d3.blur2 . #151 Add d3.blurImage . #151 Add d3.medianIndex . #159 Add d3.quantileIndex . #159
Fix incorrect behavior of d3.bisector when given an asymmetric comparator. #249 #250
Fix crash in d3.bin. Thanks, @weiglemc ! #248
Fix off-by-one bin assignment due to rounding error in d3.bin. #247
Significantly improve the performance of d3.bin. #220
Fix the implementation of d3.thresholdScott. #246
d3.rank can now take a comparator in addition to an accessor. #237
* Add d3.rank. #228
Don’t mangle InternMap or InternSet in the generated UMD bundle.
Adopt interning for set operations. #231
Fix d3.sort, d3.bisector, and related methods to handle undefined order. #227 #217
* Update dependencies. * Make build reproducible.
Add d3.flatGroup and d3.flatRollup. #196
This package now requires Node.js 12 or higher. For more, please read Sindre Sorhus’s FAQ.
Fix rounding error in d3.ticks. #199
Fix crash passing null to d3.InternMap or d3.InternSet constructor.
Allow d3.sort to take multiple accessors.
Change d3.group, d3.rollup *et al.* to use InternMap.
Fix last bin with d3.bin when the values are not numbers.
d3.sort now may accept an accessor. #183
Fix d3.bin to nice the domain by default, ensuring uniform bin widths.
Fix imprecision with *bin*.thresholds(*count*). #169
Fix off-by-one with *hi* in *bisector*.center.
* Add d3.index. * Add d3.indexes. * Add *bisector*.center.
Fix: d3.ticks sometimes incorrectly returned ticks outside the domain
* Add d3.fsum. * Add d3.Adder.
Add d3.cumsum. Thanks, @Fil! #102
Greatly improve the performance of d3.median. Thanks, @Fil and @jheer!
Avoid an *array*.sort bug in Safari. #123
Fix d3.count to ignore non-number input.
Change d3.quantile to accept iterables and non-sorted inputs.
Allow d3.least and d3.leastIndex to accept accessors.
Deprecate d3.scan; use d3.leastIndex instead.
* Fix histogram(*iterable*).
Fix an infinite loop in d3.cross. Thanks, @jviide!
Optimize and fix iteration in d3.cross. Thanks, @jviide!
See https://observablehq.com/@d3/d3-array-2-0 for details.
See https://observablehq.com/@d3/d3-array-2-0 for details.
Note: this release adopts ES2015 language features such as for-of and drops support for older browsers, including IE. If you need to support pre-ES2015 environments, you should stick with d3-array 1.x or use a transpiler.
Nothing published for this version
Nothing published for this version
Fix upper histogram bin threshold in some cases. Thanks, @hiraku!
Fix d3.ticks when *start* is equal to *stop* and *count* is positive. (d3/d3-scale#113)
Fix d3.ticks to always return the most-precise representable values in IEEE 754!
Nothing published for this version
Allow d3.pairs to take an optional reducer.
Nothing published for this version
Nothing published for this version
Add module entry point to package.json.
module entry point to package.json.The new d3.scan method performs a linear scan of an array, returning the index of the least element according to the specified comparator. This is sim
The new d3.scan method performs a linear scan of an array, returning the index of the least element according to the specified comparator. This is similar to d3.min and d3.max, except you can use it to find the position of an extreme element, rather than just calculate an extreme value.
var data = [
{name: "Alice", value: 2},
{name: "Bob", value: 3},
{name: "Carol", value: 1},
{name: "Dwayne", value: 5}
];
var i = d3.scan(data, function(a, b) { return a.value - b.value; }); // 2
data[i]; // {name: "Carol", value: 1}
The new d3.ticks and d3.tickStep methods are useful for generating human-readable numeric ticks. These methods are a low-level alternative to continuous.ticks from d3-scale. The new implementation is also more accurate, returning the optimal number of ticks as measured by relative error.
var ticks = d3.ticks(0, 10, 5); // [0, 2, 4, 6, 8, 10]
The d3.range method no longer makes an elaborate attempt to avoid floating-point error when step is not an integer. The returned values are strictly defined as start + i * step, where i is an integer. (Learn more about floating point math.) d3.range returns the empty array for infinite ranges, rather than throwing an error.
The method signature for optional accessors has been changed to be more consistent with array methods such as array.forEach: the accessor is passed the current element (d), the index (i), and the array (data), with this as undefined. This affects d3.min, d3.max, d3.extent, d3.sum, d3.mean, d3.median, d3.quantile, d3.variance and d3.deviation. The d3.quantile method previously did not take an accessor. Some methods with optional arguments now treat those arguments as missing if they are null or undefined, rather than strictly checking arguments.length.
The new d3.histogram API replaces d3.layout.histogram. Rather than exposing bin.x and bin.dx on each returned bin, the histogram exposes bin.x0 and bin.x1, guaranteeing that bin.x0 is exactly equal to bin.x1 on the preceeding bin. The “frequency” and “probability” modes are no longer supported; each bin is simply an array of elements from the input data, so bin.length is equal to D3 3.x’s bin.y in frequency mode. To compute a probability distribution, divide the number of elements in each bin by the total number of elements.
The histogram.range method has been renamed histogram.domain for consistency with scales. The histogram.bins method has been renamed histogram.thresholds, and no longer accepts an upper value: n thresholds will produce n + 1 bins. If you specify a desired number of bins rather than thresholds, d3.histogram now uses d3.ticks to compute nice bin thresholds. In addition to the default Sturges’ formula, D3 now implements the Freedman-Diaconis rule and Scott’s normal reference rule.
See CHANGES for all D3 changes since 3.x.
d3.histogram no longer coerces all inputs to numbers (#34).
Export to the global d3 in vanilla environments (d3/d3#2840).
d3 in vanilla environments (d3/d3#2840).Nothing published for this version
Move keys, values, entries, map, set, and nest to d3-collection.
- Optimize sum.
Nothing published for this version
The histogram generator now generates nicely-rounded bins by default.
The set constructor now takes an optional accessor function.
Fix name of generated d3_array global.
d3_array global.Your coding agent can read these notes before it upgrades. Set up the MCP server →