Git Product home page Git Product logo

d3's Introduction

D3: Data-Driven Documents

D3 (or D3.js) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data.

Want to learn more? See the wiki.

For examples, see the gallery and mbostock’s bl.ocks.

Installing

The master branch currently contains the prerelease of D3 4.0. The 4.0 API is not yet frozen and may change prior to the release. (For the latest stable release, 3.5.17, follow the installation instructions on the wiki.) If you use NPM, npm install d3@next. Otherwise, download the latest release. The released bundle supports AMD, CommonJS, and vanilla environments. Create a custom build using Rollup or your preferred bundler. You can also load directly from d3js.org:

<script src="https://d3js.org/d3.v4.0.0-alpha.40.min.js"></script>

For the non-minified version, remove .min from the file name.

API Reference

D3 uses semantic versioning. The current version is exposed as d3.version.

Array manipulation, ordering, searching, summarizing, etc.

Methods for computing basic summary statistics.

  • d3.min - compute the minimum value in an array.
  • d3.max - compute the maximum value in an array.
  • d3.extent - compute the minimum and maximum value in an array.
  • d3.sum - compute the sum of an array of numbers.
  • d3.mean - compute the arithmetic mean of an array of numbers.
  • d3.median - compute the median of an array of numbers (the 0.5-quantile).
  • d3.quantile - compute a quantile for a sorted array of numbers.
  • d3.variance - compute the variance of an array of numbers.
  • d3.deviation - compute the standard deviation of an array of numbers.

Bin discrete samples into continuous, non-overlapping intervals.

Methods for searching arrays for a specific element.

Methods for transforming arrays and for generating new arrays.

  • d3.merge - merge multiple arrays into one array.
  • d3.pairs - create an array of adjacent pairs of elements.
  • d3.permute - reorder an array of elements according to an array of indexes.
  • d3.shuffle - randomize the order of an array.
  • d3.ticks - generate representative values from a numeric interval.
  • d3.tickStep - generate representative values from a numeric interval.
  • d3.range - generate a range of numeric values.
  • d3.transpose - transpose an array of arrays.
  • d3.zip - transpose a variable number of arrays.

Human-readable reference marks for scales.

Handy data structures for elements keyed by string.

Methods for converting associative arrays (objects) to arrays.

  • d3.keys - list the keys of an associative array.
  • d3.values - list the values of an associated array.
  • d3.entries - list the key-value entries of an associative array.

Like ES6 Map, but with string keys and a few other differences.

  • d3.map - create a new, empty map.
  • map.has - returns true if the map contains the given key.
  • map.get - get the value for the given key.
  • map.set - set the value for the given key.
  • map.remove - remove the entry for given key.
  • map.clear - remove all entries.
  • map.keys - get the array of keys.
  • map.values - get the array of values.
  • map.entries - get the array of entries (key-values objects).
  • map.each - call a function for each entry.
  • map.empty - returns false if the map has at least one entry.
  • map.size - compute the number of entries.

Like ES6 Set, but with string keys and a few other differences.

  • d3.set - create a new, empty set.
  • set.has - returns true if the set contains the given value.
  • set.add - add the given value.
  • set.remove - remove the given value.
  • set.clear - remove all values.
  • set.values - get the array of values.
  • set.each - call a function for each value.
  • set.empty - returns true if the set has at least one value.
  • set.size - compute the number of values.

Group data into arbitrary hierarchies.

  • d3.nest - create a new nest generator.
  • nest.key - add a level to the nest hierarchy.
  • nest.sortKeys - sort the current nest level by key.
  • nest.sortValues - sort the leaf nest level by value.
  • nest.rollup - specify a rollup function for leaf values.
  • nest.map - generate the nest, returning a map.
  • nest.object - generate the nest, returning an associative array.
  • nest.entries - generate the nest, returning an array of key-values tuples.

Color manipulation and color space conversion.

Parse and format delimiter-separated values, most commonly CSV and TSV.

  • d3.dsvFormat - create a new parser and formatter for the given delimiter.
  • dsv.parse - parse the given string, returning an array of objects.
  • dsv.parseRows - parse the given string, returning an array of rows.
  • dsv.format - format the given array of objects.
  • dsv.formatRows - format the given array of rows.
  • d3.csvParse - parse the given CSV string, returning an array of objects.
  • d3.csvParseRows - parse the given CSV string, returning an array of rows.
  • d3.csvFormat - format the given array of objects as CSV.
  • d3.csvFormatRows - format the given array of rows as CSV.
  • d3.tsvParse - parse the given TSV string, returning an array of objects.
  • d3.tsvParseRows - parse the given TSV string, returning an array of rows.
  • d3.tsvFormat - format the given array of objects as TSV.
  • d3.tsvFormatRows - format the given array of rows as TSV.

Separate concerns using named callbacks.

Drag and drop SVG, HTML or Canvas using mouse or touch input.

  • d3.drag - create a drag behavior.
  • drag - apply the drag behavior to a selection.
  • drag.container - set the coordinate system.
  • drag.filter - ignore some initiating input events.
  • drag.subject - set the thing being dragged.
  • drag.x - set the x-coordinate of the subject.
  • drag.y - set the y-coordinate of the subject.
  • drag.on - listen for drag events.
  • event.on - listen for drag events on the current gesture.

Easing functions for smooth animation.

Force-directed graph layout using velocity Verlet integration.

Layout algorithms for visualizing hierarchical data.

Interpolate numbers, colors, strings, arrays, objects, whatever!

Format numbers for human consumption.

Serialize Canvas path commands to SVG.

Geometric operations for two-dimensional polygons.

Two-dimensional recursive spatial subdivision.

Evaluate asynchronous tasks with configurable concurrency.

  • d3.queue - manage the concurrent evaluation of asynchronous tasks.
  • queue.defer - register a task for evaluation.
  • queue.abort - abort any active tasks and cancel any pending ones.
  • queue.await - register a callback for when tasks complete.
  • queue.awaitAll - register a callback for when tasks complete.

Generate random numbers from various distributions.

A convenient alternative to asynchronous XMLHttpRequest.

Encodings that map abstract data to visual representation.

Map a continuous, quantitative domain to a continuous range.

Map a continuous, quantitative domain to a continuous, fixed color ramp.

Map a continuous, quantitative domain to a discrete range.

Map a discrete domain to a discrete range.

Map a discrete domain to a discrete, fixed categorical color range.

Transform the DOM by selecting elements and joining to data.

  • selection.on - add or remove event listeners.
  • selection.dispatch - dispatch a custom event.
  • d3.event - the current user event, during interaction.
  • d3.customEvent - temporarily define a custom event.
  • d3.mouse - get the mouse position relative to a given container.
  • d3.touch - get a touch position relative to a given container.
  • d3.touches - get the touch positions relative to a given container.

Graphical primitives for visualization.

Circular or annular sectors, as in a pie or donut chart.

Compute the necessary angles to represent a tabular dataset as a pie or donut chart.

A spline or polyline, as in a line chart.

An area, defined by a bounding topline and baseline, as in an area chart.

Interpolate between points to produce a continuous shape.

A categorical shape encoding, as in a scatterplot.

Stack shapes, placing one adjacent to another, as in a stacked bar chart.

Parse and format times, inspired by strptime and strftime.

A calculator for humanity’s peculiar conventions of time.

An efficient queue for managing thousands of concurrent animations.

  • d3.now - get the current high-resolution time.
  • d3.timer - schedule a new timer.
  • timer.restart - reset the timer’s start time and callback.
  • timer.stop - stop the timer.
  • d3.timerFlush - immediately execute any eligible timers.
  • d3.timeout - schedule a timer that stops on its first callback.
  • d3.interval - schedule a timer that is called with a configurable period.

Animated transitions for selections.

Compute the Voronoi diagram of a given set of points.

d3's People

Contributors

mbostock avatar jasondavies avatar kitmonisit avatar 27359794 avatar larskotthoff avatar natevw avatar yasirs avatar square-build-bot avatar jheer avatar leodutra avatar mrcarlosrendon avatar nelsonminar avatar webmonarch avatar hlvoorhees avatar trevnorris avatar dandv avatar pjjw avatar jfirebaugh avatar mrblueblue avatar splendido avatar snoble avatar iterion avatar zenmoto avatar trinary avatar gerhobbelt avatar jisaacks avatar dwt avatar notlion avatar tbranyen avatar kmindi avatar

Watchers

James Cloos avatar Jimmy Touma avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.