Commits on Mar 1, 2011
  1. Add support for sortKeys on d3.nest.

    The method existed previously, but it only makes sense in conjunction with the
    newly-added `entries` operator; map keys are inherently unsorted. Originally I
    envisioned that key-sorting could be done externally using `d3.entries`, but
    that's tedious for hierarchical structures.
    mbostock committed Mar 1, 2011
Commits on Feb 28, 2011
  1. Add treemap example.

    Still a work in progress. Need to decide on the appropriate API for representing
    tree structures; not sure I want to go the heavyweight pv.dom route. May also
    need rounding to exact pixel values.
    mbostock committed Feb 28, 2011
  2. Restructure cartogram example.

    mbostock committed Feb 28, 2011
  3. Better force-directed layout.

    Use the Floyd-Warshall algorithm to compute the shortest path between nodes, and
    use that graph theoretic distance as the distance constraint for the Gauss-
    Seidel relaxation. In addition, have the constraint alpha decay over time, as in
    Simulated Annealing.
    mbostock committed Feb 28, 2011
Commits on Feb 27, 2011
  1. Add d3.interpolateHsl.

    This allows scale interpolation in HSL space. For example:
        var fill = d3.scale.linear()
            .domain([0, 100])
            .range([d3.hsl(180, .5, 1), d3.hsl(180, .5, 0)]);
    You could approximate this in previous versions using d3.interpolateString, but
    the new interpolation method is slightly faster and also provides backwards-
    compatibility for browsers that only understand RGB.
    mbostock committed Feb 27, 2011
  2. Restructure voronoi example.

    mbostock committed Feb 27, 2011
  3. Resize chord example.

    mbostock committed Feb 27, 2011
  4. Restructure splom example.

    mbostock committed Feb 27, 2011
  5. Restructure force example.

    mbostock committed Feb 27, 2011
  6. Resize a few examples.

    mbostock committed Feb 27, 2011
Commits on Feb 26, 2011
  1. Restructure choropleth example.

    mbostock committed Feb 26, 2011
Commits on Feb 25, 2011
  1. Tweak README.

    mbostock committed Feb 25, 2011
Commits on Feb 24, 2011
  1. Sort for layout, but don't reorder.

    This fixes a bug in the pie layout sorting where we want the sort order to
    affect the layout, but not the order in which arcs are rendered—and furthermore
    we want the order of arcs to always match the order of data. (If you want to
    sort the data, do that before it is passed to the layout.)
    mbostock committed Feb 24, 2011
  2. More convenient pies.

    This adds d3.layout.pie, which can be used to compute the start and end angles
    for arcs given an arbitrary array of data. In addition, d3.svg.arc now has a
    `centroid` method that computes the center of the arc, useful for labeling.
    Together these changes greatly simplify the donut & pie examples.
    This commit also includes a `map` method for selections, which is similar to the
    `filter` method. This allows you to map the data bound to the current selection.
    I'm not currently using it, but it seems like a useful feature for those cases
    where you want to rebind the current selection to different (but related) data.
    mbostock committed Feb 24, 2011
Commits on Feb 23, 2011
  1. Oops, include sqrt transform.

    mbostock committed Feb 23, 2011
  2. Merge branch 'master' of

    mbostock committed Feb 23, 2011
  3. Non-contiguous cartogram example.

    Also includes new d3.geom.polygon.centroid method. Props to Zachary Johnson for
    the inspiration!
    mbostock committed Feb 23, 2011
Commits on Feb 19, 2011
  1. Merge branch 'array_slice' of into …

    mbostock committed Feb 19, 2011
Commits on Feb 18, 2011
  1. Remove slice(arguments).

    mbostock committed Feb 18, 2011
  2. Fix `d3_array` for older/more esoteric browsers.

    This code is adapted from `makeArray` in Sizzle.js.
    jasondavies committed Feb 18, 2011
Commits on Feb 17, 2011
  1. Support for Sizzle.

    D3 now supports Sizzle, preferring Sizzle to the native Selectors API if Sizzle
    is available. Sizzle internally uses the native Selectors API and thus this
    should have minimal performance implications; also, it allows you to use Sizzle
    proprietary extensions such as ":first".
    This commit also restricts the definition of the enter selection so that only
    append and insert operations are defined. The other operations were generally
    unsupported anyway, and it cleans up the code to have separate implementations
    for insert and append. (I might enable additional operations in the future, such
    as `filter`, `sort` and `each`, but this seems like a reasonable first pass.)
    mbostock committed Feb 17, 2011
Commits on Feb 16, 2011
  1. Add support for namespaced listeners.

    You can now also remove listeners by specifying a null listener.
    mbostock committed Feb 16, 2011
Commits on Feb 14, 2011
  1. Add d3.svg.symbol.

    The `symbol` class can be used to generate dot symbols for scatterplots. This
    commit also fixes a couple bugs with negative-domain log and pow scales, as well
    as tick generation.
    mbostock committed Feb 14, 2011
Commits on Feb 12, 2011
  1. Add d3.geo.bounds.

    This method can be used for computing the bounding box of arbitrary GeoJSON
    objects. This commit also fixes a bug in d3.geo.path, such that it will accept
    any GeoJSON object, rather than requiring GeoJSON feature objects.
    mbostock committed Feb 12, 2011
  2. Add color-by-area with zoom example.

    This uses d3.geo.path to compute the projected area (in square pixels) of each
    county in the choropleth. It also usees d3.behavior.zoom to add geometric pan
    and zoom.
    mbostock committed Feb 12, 2011
Commits on Feb 11, 2011
  1. Add geometric zooming example.

    mbostock committed Feb 11, 2011
  2. Add d3.behavior module.

    Includes, as the first behavior, a pan & zoom behavior. The canvas can be panned
    by dragging the mouse, and zoomed using the mousewheel (or by double-click). By
    listening to redraw events, users can decide whether to implement geometric
    zooming (such as by setting the "transform" attribute on an `svg:g` element) or
    semantic zooming (by changing the domain of a scale object and repositioning
    This commit also includes two bug fixes. The `d3.format` class now properly
    groups thousands of negative numbers, and supports the sign specifier. The
    unicode minus symbol \u2212 is used for negative values. The `d3.scale.pow`
    class now properly handles negative numbers, as well.
    mbostock committed Feb 11, 2011