-
Notifications
You must be signed in to change notification settings - Fork 0
Wiki ▸ Release Notes ▸ 3.0
The page covers new features in 3.0; see Upgrading to 3.0 for how to migrate from 2.x to 3.0.
| Chained Transitions |
Stacked-to-Grouped Transition |
Custom Axis Transition |
D3’s transitions now bind tweens and other transition state to the DOM, similar to how data is bound to selections. You can now reselect scheduled transitions from the DOM and inspect them in the JavaScript console, or even modify them, say for customized axes!
Value functions passed to transition.attr and transition.style are now evaluated immediately, rather than at the start of the transition. This simplifies scheduling of chained transitions that depend on external state, such as scale domains. The transition.transition now creates a transition that starts when the previous transition ends (rather than a concurrent transition), so you can chain transitions (such as stacked-to-grouped bars) without needing to listen for "end" events.
For more on how transitions work in D3, see the Working with Transitions tutorial.
| Progress Events |
Using Queue.js |
D3 now provides a proper d3.xhr object in addition to asynchronous methods for issuing requests. This means that you can now have multiple listeners on the same request, including separate listeners for progress, load and error events. You can use xhr.abort to cancel in-flight requests, xhr.header to add request headers, and xhr.send to customize the HTTP method and body data. D3 also provides CORS compatibility for IE9 by way of Microsoft's nonstandard XDomainRequest object.
The asynchronous request methods now use the Node.js callback pattern, where the first argument to the callback is the error, and the second argument is the response content. This makes d3.xhr compatible with asynchronous JavaScript helper libraries, such as Queue.js.
- antimeridian cutting
- projection.clipAngle - robust circle clipping
- projection.precision - adaptive supersampling
- projection.rotate - three-axis rotation, world tour
- raw projections (e.g., d3.geo.stereographic.raw) - easier composition
- d3.geo.projectionMutator - extensible design for new projections
- support for right hand rule
- sphere rendering via new GeoJSON "Sphere" type
- speed!
- direct to canvas rendering (path.context)!
- streaming geometry transformations (e.g., simplification)
- less memory overhead during projection operations
- d3.geo.graticule - display grid lines
- d3.geo.circle - small and great circle rendering (like Tissot's indicatrix)
- d3.geo.interpolate - interpolate along great arcs
- d3.geo.{area,centroid,bounds} - spherical area, centroid and bounds
- path.{area,centroid,bounds} - observes clipping & resampling
- d3.geo.aitoff - Aitoff
- d3.geo.albers - Albers equal-area conic
- d3.geo.august - August conformal
- d3.geo.azimuthalEqualArea - Lambert azimuthal equal-area
- d3.geo.azimuthalEquidistant - Azimuthal equidistant
- d3.geo.bonne - Bonne
- d3.geo.collignon - Collignon
- d3.geo.conicConformal - Lambert conformal conic
- d3.geo.conicEquidistant - Conic equidistant
- d3.geo.cylindricalEqualArea - Cylindrical equal-area
- d3.geo.eckert1 - Eckert I
- d3.geo.eckert2 - Eckert II
- d3.geo.eckert3 - Eckert III
- d3.geo.eckert4 - Eckert IV
- d3.geo.eckert5 - Eckert V
- d3.geo.eckert6 - Eckert VI
- d3.geo.eisenlohr - Eisenlohr conformal
- d3.geo.equirectangular - Equirectangular (Plate Carrée)
- d3.geo.gnomonic - Gnomonic
- d3.geo.gringorten - Gringorten
- d3.geo.guyou - Guyou hemisphere-in-a-square
- d3.geo.hammer - Hammer
- d3.geo.homolosine - Goode Homolosine
- d3.geo.kavrayskiy7 - Kavrayskiy VII
- d3.geo.lagrange - Lagrange conformal
- d3.geo.larrivee - Larrivée
- d3.geo.mercator - Mercator
- d3.geo.miller - Miller
- d3.geo.mollweide - Mollweide
- d3.geo.nellHammer - Nell–Hammer
- d3.geo.orthographic - Orthographic
- d3.geo.polyconic - Polyconic
- d3.geo.robinson - Robinson
- d3.geo.satellite - Satellite (tilted perpsective)
- d3.geo.sinusoidal - Sinusoidal
- d3.geo.sinuMollweide - Sinu-Mollweide
- d3.geo.stereographic - Stereographic
- d3.geo.vanDerGrinten - Van der Grinten
- d3.geo.wagner6 - Wagner VI
- d3.geo.winkel3 - Winkel Tripel
- d3.geo.tile
Replacement for GeoJSON that typically provides 80-90% smaller file sizes. Also encodes topology, enabling topology-preserving shape simplification (à la MapShaper), map coloring, cartograms, boundary mesh computation, and more!
- d3.shuffle - Fisher–Yates shuffle
- d3.format and d3.time.format - align, fill and localization support
- d3.layout.treemap - slice and dice
- moved to bl.ocks.org for easier browsing & forking
- various bug fixes and performance improvements
- d3.hexbin plugin - hexagonal binning
And more!