NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2486 most downloaded on npm
Data-Driven Documents
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 9 days to 9 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
15 years old
273 releases · first in 2011
Fix d3.select(document) and d3.select({}).
d3.select(document) and d3.select({}).Zero dependencies! JSDOM is now limited to a development dependency for testing.
window and document.d3.transition() crash in IE.One column per quarter.
Fix selection.interrupt when interrupting the last scheduled transition.
Include d3.variance and d3.deviation in the default build.
d3.transition(name).Fix selection.interrupt to prevent erroneous cancelation of scheduled transitions.
Add named transitions (e.g., 1 2) for concurrent animations on the same element.
Fix invalid transform when switching between linear and log axes.
Object.create(null).Fix uncaught InvalidStateError thrown when using d3.xhr with non-text response types.
Fix the reported center of the transverse Mercator projection.
Expose the d3 global, even on pages with an AMD loader. This is primarily for the benefit of libraries and plugins that depend on the d3 global but th
d3 global, even on pages with an AMD loader. This is primarily for the benefit of libraries and plugins that depend on the d3 global but that do not support AMD. However, it also has the benefit that you can use D3 from the developer console even on pages that use AMD.Using instanceof with d3.rgb, d3.hsl, d3.lab and d3.hcl now works as expected.
Fix d3.layout.tree RangeError (maximum call stack size exceeded) on particularly deep trees.
Nothing published for this version
Fix parsing of time zone offset (%Z).
Optimize d3.interpolateString, especially with many shared numbers. (Thank you, @ChALkeR!)
d3.scale.linear computes a consistent SI-prefix and precision when the "s" tick format is used.
Avoid asymmetric behavior of Math.sin and Math.cos in Chrome 33 in d3.geo.area and d3.geo.path.
Fix missing currency symbol when formatting currencies using SI-prefix notation in a locale with a currency suffix (e.g., Russian).
Fix winding order bug in projection.clipExtent (e.g., Mercator projection; since 3.4.0).
Add d3.locale for creating new localized number and time formats.
Fix crash in scale.nice when a time scale has a sub-second domain.
Fix antimeridian cutting for the transverse Mercator projection.
Fix DSV parsing (d3.tsv, d3.csv) with cross-domain requests in IE9.
Fix rendering instability in adaptive resampling when points lie on the antimeridian.
Improve performance of d3.geo.projection when adaptive resampling is disabled.
Fix catastrophic loss of precision when computing Voronoi tessellation.
Improve transition performance by deferring the first tick until after all tweens are initialized.
Improve accuracy of winding order determination in d3.geo.projection.
Ordinal scales no longer implicitly extend the domain with rangeBands or rangePoints.
Fix bug in winding order determination in d3.geo.projection.
Fix d3.mouse for touch events with no touches (such as touchend).
Fixes crash in d3.transition on IE9 due to lack of __proto__ support.
Fix obsolete “major” class being inadvertently applied to axis ticks.
Add axis.innerTickSize and axis.outerTickSize; deprecates multi-argument axis.tickSize.
scale.ticks() is now equivalent to scale.ticks(10).scale.nice() is now equivalent to scale.nice(10).scale.nice(count) and scale.nice(interval, skip) are now supported.scale.ticks(interval) is now favored over scale.ticks(range).Fix multitouch handling in d3.behavior.zoom and drag-based interaction.
Color interpolators (and by extension, quantitative scales) once again return strings rather than color instances, improving performance and lessening
Fix bug in log.nice introduced in 3.2.5.
Fix bug with localized decimal point in d3.format.
Add currency support to d3.format (e.g., "+$,.2f").
"+$,.2f").Allow pack.radius to be specified as a constant.
Add missing transition.size method.
Fix d3.behavior.zoom for Android.
new Number(NaN)).Add quadtree.extent; deprecates size.
Fix xhr.response such that if the function errors, it is reported as an error rather than crashing. For example, if d3.json attempts to parse invalid
Revert change to ordinal.rangeBand introduced in 3.1.8.
Redesign d3.geo.albersUsa. Adopted more standard projections for the contiguous United States, Alaska and Hawaii, and removed Puerto Rico. Now applies
Fix pow, sqrt and log scales to preserve set domains exactly.
Allow hue, chroma or saturation to be undefined in d3.hsl and d3.hcl.
Fix click suppression following a zoom or drag.
[0]) are still interpolated using d3.interpolateArray or d3.interpolateObject as appropriate.Fix projection.clipExtent to remove the redundant closing point when no clipping is performed.
Fix d3.geo.mercator such that the clip extent is determined automatically by default.
Fix regression in d3.geom.quadtree introduced in 3.1.0.
Fix projection.clipExtent for very large coordinates (e.g., satellite projection).
Add d3.geo.distance; deprecate d3.geo.greatArc.
The Mercator projection now uses viewport clipping rather than clamping latitudes. The viewport is automatically determined by the projection’s scale and translate, but can be set explicitly using projection.clipExtent. Note that only d3.geo.mercator uses viewport clipping; d3.geo.mercator.raw does no clipping or clamping.
D3 3.1 changes the scale of d3.geo.mercator, increasing the effective scale factor by 2π. When upgrading to 3.1, divide your previous scale by 2π when setting, or multiply by 2π when getting. See the d3.geo.tile example for sample usage.
Thanks to SMASH, you can now build a minimal version of D3 that has just the parts you need, reducing the size of your JavaScript assets. For example, if you need d3.geo.mercator and d3.geo.path to render some stuff to Canvas, you could build a minimal bundle that’s only 24K:
smash src/start.js src/geo/path.js src/geo/mercator.js src/end.js > lib.js
See the SMASH wiki for a more detailed example including an example Makefile.
Fix d3.time.format.iso for Safari 5.
Fix d3.geo.interpolate for coincident points.
Fix d3.svg.axis such that: the “tick” class is applied to the g element, rather than the line; the domain path is properly entered when called via tra
fixed bits are preserved on mouseup or mouseout.d3 namespace, the current document and the current window, rather than rely on globals; allows multiple versions of D3 to be loaded independently.Update JSDOM dependency (when using D3 within Node), and remove Sizzle dependency.
Fix greatArc.target when the specified target is a constant. (Note: greatArc was deprecated in 3.1.0.)
Fix selection.data when duplicate keys are specified; only the first datum or element is considered and subsequent data or elements are ignored.
Your coding agent can read these notes before it upgrades. Set up the MCP server →