Skip to content
mbostock edited this page Dec 18, 2012 · 50 revisions

WikiRelease Notes3.0

The page covers new features in 3.0; see Upgrading to 3.0 for how to migrate from 2.x to 3.0.

Transitions

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.

Requests

  • xhr.on - register listeners for progress, load and error events
  • xhr.abort - cancel in-flight requests
  • xhr.send - customize method and post data
  • xhr.header - add request headers
  • CORS support for IE9
  • standard Node-style callbacks, compatible with Queue.js.

Geo

d3.geo.projection

d3.geo.stream

  • direct to canvas rendering (path.context)!
  • streaming geometry transformations (e.g., simplification)
  • less memory overhead during projection operations

Utilities

  • 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

Extended Projections

  • 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

Quadtree Tiles

  • d3.geo.tile

TopoJSON

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!

Other

  • 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!

Clone this wiki locally