API Reference
Everything in D3 is scoped under the d3
namespace. D3 uses semantic versioning. You can find the current version of D3 as d3.version
.
- d3.ascending - compare two values for sorting.
- d3.descending - compare two values for sorting.
- d3.min - find the minimum value in an array.
- d3.max - find the maximum value in an array.
- d3.extent - find 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.bisect - search for a value in a sorted array.
- d3.bisectRight - search for a value in a sorted array.
- d3.bisectLeft - search for a value in a sorted array.
- d3.bisector - bisect using an accessor.
- d3.shuffle - randomize the order of an array.
- d3.permute - reorder an array of elements according to an array of indexes.
- d3.zip - transpose a variable number of arrays.
- d3.transpose - transpose an array of 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.
- d3.merge - merge multiple arrays into one array.
- d3.range - generate a range of numeric values.
- d3.nest - group array elements hierarchically.
- 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 - evaluate the nest operator, returning an associative array.
- nest.entries - evaluate the nest operator, returning an array of key-values tuples.
- d3.map - a shim for ES6 maps, since objects are not hashes!
- map.has - returns true if the map contains the specified key.
- map.get - returns the value for the specified key.
- map.set - sets the value for the specified key.
- map.remove - removes the entry for specified key.
- map.keys - returns the map’s array of keys.
- map.values - returns the map’s array of values.
- map.entries - returns the map’s array of entries (key-values objects).
- map.forEach - calls the specified function for each entry in the map.
- d3.xhr - request a resource using XMLHttpRequest.
- xhr.header - set a request header.
- xhr.mimeType - set the Accept request header and override the response MIME type.
- xhr.response - set a response mapping function.
- xhr.get - issue a GET request.
- xhr.post - issue a POST request.
- xhr.send - issue a request with the specified method and data.
- xhr.abort - abort an outstanding request.
- xhr.on - add an event listener for "progress", "load" or "error" events.
- d3.text - request a text file.
- d3.json - request a JSON blob.
- d3.html - request an HTML document fragment.
- d3.xml - request an XML document fragment.
- d3.csv - request a comma-separated values (CSV) file.
- d3.tsv - request a tab-separated values (TSV) file.
- d3.format - format a number as a string.
- d3.formatPrefix - returns the [SI prefix] for the specified value and precision.
- d3.requote - quote a string for use in a regular expression.
- d3.round - rounds a value to some digits after the decimal point.
- d3.csv - request a comma-separated values (CSV) file.
- d3.csv.parse - parse a CSV string into objects using the header row.
- d3.csv.parseRows - parse a CSV string into tuples, ignoring the header row.
- d3.csv.format - format an array of tuples into a CSV string.
- d3.tsv - request a tab-separated values (TSV) file.
- d3.tsv.parse - parse a TSV string into objects using the header row.
- d3.tsv.parseRows - parse a TSV string into tuples, ignoring the header row.
- d3.tsv.format - format an array of tuples into a TSV string.
- d3.rgb - specify a color in RGB space.
- rgb.brighter - increase RGB channels by some exponential factor (gamma).
- rgb.darker - decrease RGB channels by some exponential factor (gamma).
- rgb.hsl - convert from RGB to HSL.
- rgb.toString - convert an RGB color to a string.
- d3.hsl - specify a color in HSL space.
- hsl.brighter - increase lightness by some exponential factor (gamma).
- hsl.darker - decrease lightness by some exponential factor (gamma).
- hsl.rgb - convert from HSL to RGB.
- hsl.toString - convert an HSL color to a string.
- d3.lab - specify a color in L*a*b* space.
- lab.brighter - increase lightness by some exponential factor (gamma).
- lab.darker - decrease lightness by some exponential factor (gamma).
- lab.rgb - convert from L*a*b* to RGB.
- lab.toString - convert a L*a*b* color to a string.
- d3.hcl - specify a color in HCL space.
- hcl.brighter - increase lightness by some exponential factor (gamma).
- hcl.darker - decrease lightness by some exponential factor (gamma).
- hcl.rgb - convert from HCL to RGB.
- hcl.toString - convert an HCL color to a string.
- d3.functor - create a function that returns a constant.
- d3.rebind - rebind an inherited getter/setter method to a subclass.
- d3.dispatch - create custom event dispatchers.
- dispatch.on - register an event listener.
- dispatch - dispatch an event to registered listeners.
- d3.scale.linear - construct a linear quantitative scale.
- linear - get the range value corresponding to a given domain value.
- linear.invert - get the domain value corresponding to a given range value.
- linear.domain - get or set the scale's input domain.
- linear.range - get or set the scale's output range.
- linear.rangeRound - set the scale's output range, and enable rounding.
- linear.interpolate - get or set the scale's output interpolator.
- linear.clamp - enable or disable clamping of the output range.
- linear.nice - extend the scale domain to nice round numbers.
- linear.ticks - get representative values from the input domain.
- linear.tickFormat - get a formatter for displaying tick values.
- linear.copy - create a new scale from an existing scale.
- d3.scale.sqrt - construct a quantitative scale with a square root transform.
- d3.scale.pow - construct a quantitative scale with an exponential transform.
- pow - get the range value corresponding to a given domain value.
- pow.invert - get the domain value corresponding to a given range value.
- pow.domain - get or set the scale's input domain.
- pow.range - get or set the scale's output range.
- pow.rangeRound - set the scale's output range, and enable rounding.
- pow.interpolate - get or set the scale's output interpolator.
- pow.clamp - enable or disable clamping of the output range.
- pow.nice - extend the scale domain to nice round numbers.
- pow.ticks - get representative values from the input domain.
- pow.tickFormat - get a formatter for displaying tick values.
- pow.exponent - get or set the exponent power.
- pow.copy - create a new scale from an existing scale.
- d3.scale.log - construct a quantitative scale with an logarithmic transform.
- log - get the range value corresponding to a given domain value.
- log.invert - get the domain value corresponding to a given range value.
- log.domain - get or set the scale's input domain.
- log.range - get or set the scale's output range.
- log.rangeRound - set the scale's output range, and enable rounding.
- log.interpolate - get or set the scale's output interpolator.
- log.clamp - enable or disable clamping of the output range.
- log.nice - extend the scale domain to nice powers of ten.
- log.ticks - get representative values from the input domain.
- log.tickFormat - get a formatter for displaying tick values.
- log.copy - create a new scale from an existing scale.
- d3.scale.quantize - construct a linear quantitative scale with a discrete output range.
- quantize - get the range value corresponding to a given domain value.
- quantize.domain - get or set the scale's input domain.
- quantize.range - get or set the scale's output range (as discrete values).
- quantize.copy - create a new scale from an existing scale.
- d3.scale.threshold - construct a threshold scale with a discrete output range.
- threshold - get the range value corresponding to a given domain value.
- threshold.domain - get or set the scale's input domain.
- threshold.range - get or set the scale's output range (as discrete values).
- threshold.copy - create a new scale from an existing scale.
- d3.scale.quantile - construct a quantitative scale mapping to quantiles.
- quantile - get the range value corresponding to a given domain value.
- quantile.domain - get or set the scale's input domain (as discrete values).
- quantile.range - get or set the scale's output range (as discrete values).
- quantile.quantiles - get the scale's quantile bin thresholds.
- quantile.copy - create a new scale from an existing scale.
- d3.scale.identity - construct a linear identity scale.
- identity - the identity function.
- identity.invert - equivalent to identity; the identity function.
- identity.domain - get or set the scale's domain and range.
- identity.range - equivalent to identity.domain.
- identity.ticks - get representative values from the domain.
- identity.tickFormat - get a formatter for displaying tick values.
- identity.copy - create a new scale from an existing scale.
- d3.svg.line - create a new line generator.
- line - generate a piecewise linear curve, as in a line chart.
- line.x - get or set the x-coordinate accessor.
- line.y - get or set the y-coordinate accessor.
- line.interpolate - get or set the interpolation mode.
- line.tension - get or set the cardinal spline tension.
- line.defined - control whether the line is defined at a given point.
- d3.svg.line.radial - create a new radial line generator.
- line - generate a piecewise linear curve, as in a polar line chart.
- line.radius - get or set the radius accessor.
- line.angle - get or set the angle accessor.
- line.defined - control whether the line is defined at a given point.
- d3.svg.area - create a new area generator.
- area - generate a piecewise linear area, as in an area chart.
- area.x - get or set the x-coordinate accessors.
- area.x0 - get or set the x0-coordinate (baseline) accessor.
- area.x1 - get or set the x1-coordinate (topline) accessor.
- area.y - get or set the y-coordinate accessors.
- area.y0 - get or set the y0-coordinate (baseline) accessor.
- area.y1 - get or set the y1-coordinate (topline) accessor.
- area.interpolate - get or set the interpolation mode.
- area.tension - get or set the cardinal spline tension.
- area.defined - control whether the area is defined at a given point.
- d3.svg.area.radial - create a new area generator.
- area - generate a piecewise linear area, as in a polar area chart.
- area.radius - get or set the radius accessors.
- area.innerRadius - get or set the inner radius (baseline) accessor.
- area.outerRadius - get or set the outer radius (topline) accessor.
- area.angle - get or set the angle accessors.
- area.startAngle - get or set the angle (baseline) accessor.
- area.endAngle - get or set the angle (topline) accessor.
- area.defined - control whether the area is defined at a given point.
- d3.svg.arc - create a new arc generator.
- arc - generate a solid arc, as in a pie or donut chart.
- arc.innerRadius - get or set the inner radius accessor.
- arc.outerRadius - get or set the outer radius accessor.
- arc.startAngle - get or set the start angle accessor.
- arc.endAngle - get or set the end angle accessor.
- arc.centroid - compute the arc centroid.
- d3.svg.symbol - create a new symbol generator.
- symbol - generate categorical symbols, as in a scatterplot.
- symbol.type - get or set the symbol type accessor.
- symbol.size - get or set the symbol size (in square pixels) accessor.
- d3.svg.symbolTypes - the array of supported symbol types.
- d3.svg.chord - create a new chord generator.
- chord - generate a quadratic Bézier connecting two arcs, as in a chord diagram.
- chord.radius - get or set the arc radius accessor.
- chord.startAngle - get or set the arc start angle accessor.
- chord.endAngle - get or set the arc end angle accessor.
- chord.source - get or set the source arc accessor.
- chord.target - get or set the target arc accessor.
- d3.svg.diagonal - create a new diagonal generator.
- diagonal - generate a two-dimensional Bézier connector, as in a node-link diagram.
- diagonal.source - get or set the source point accessor.
- diagonal.target - get or set the target point accessor.
- diagonal.projection - get or set an optional point transform.
- d3.svg.diagonal.radial - create a new diagonal generator.
- diagonal - generate a two-dimensional Bézier connector, as in a node-link diagram.
- d3.svg.brush - click and drag to select one- or two-dimensional regions.
- brush - creates or updates a brush for the given selection or transition.
- brush.x - get or set the brush’s x-scale.
- brush.y - get or set the brush’s y-scale.
- brush.extent - get or set the brush’s extent.
- brush.clear - reset the brush extent.
- brush.empty - returns true if the brush extent is empty.
- brush.on - respond to events when the brush is moved.
- d3.time.interval - a time interval in local time.
- interval - alias for interval.floor.
- interval.range - returns dates within the specified range.
- interval.floor - rounds down to the nearest interval.
- interval.round - rounds up or down to the nearest interval.
- interval.ceil - rounds up to the nearest interval.
- interval.offset - returns a date offset by some interval.
- interval.utc - returns the UTC-equivalent time interval.
- d3.time.day - every day (12:00 AM).
- d3.time.days - alias for day.range.
- d3.time.dayOfYear - computes the day number.
- d3.time.hour - every hour (e.g., 1:00 AM).
- d3.time.hours - alias for hour.range.
- d3.time.minute - every minute (e.g., 1:02 AM).
- d3.time.minutes - alias for minute.range.
- d3.time.month - every month (e.g., February 1, 12:00 AM).
- d3.time.months - alias for month.range.
- d3.time.second - every second (e.g., 1:02:03 AM).
- d3.time.seconds - alias for second.range.
- d3.time.sunday - every Sunday (e.g., February 5, 12:00 AM).
- d3.time.sundays - alias for sunday.range.
- d3.time.sundayOfYear - computes the sunday-based week number.
- d3.time.monday - every Monday (e.g., February 5, 12:00 AM).
- d3.time.mondays - alias for monday.range.
- d3.time.mondayOfYear - computes the monday-based week number.
- d3.time.tuesday - every Tuesday (e.g., February 5, 12:00 AM).
- d3.time.tuesdays - alias for tuesday.range.
- d3.time.tuesdayOfYear - computes the tuesday-based week number.
- d3.time.wednesday - every Wednesday (e.g., February 5, 12:00 AM).
- d3.time.wednesdays - alias for wednesday.range.
- d3.time.wednesdayOfYear - computes the wednesday-based week number.
- d3.time.thursday - every Thursday (e.g., February 5, 12:00 AM).
- d3.time.thursdays - alias for thursday.range.
- d3.time.thursdayOfYear - computes the thursday-based week number.
- d3.time.friday - every Friday (e.g., February 5, 12:00 AM).
- d3.time.fridays - alias for friday.range.
- d3.time.fridayOfYear - computes the friday-based week number.
- d3.time.saturday - every Saturday (e.g., February 5, 12:00 AM).
- d3.time.saturdays - alias for saturday.range.
- d3.time.saturdayOfYear - computes the saturday-based week number.
- d3.time.week - alias for sunday.
- d3.time.weeks - alias for sunday.range.
- d3.time.weekOfYear - alias for sundayOfYear.
- d3.time.year - every year (e.g., January 1, 12:00 AM).
- d3.time.years - alias for year.range.
- d3.layout.bundle - construct a new default bundle layout.
- bundle - apply Holten's hierarchical bundling algorithm to edges.
- d3.layout.pack - produce a hierarchical layout using recursive circle-packing.
- pack.sort - control the order in which sibling nodes are traversed.
- pack.children - get or set the children accessor function.
- pack.nodes - compute the pack layout and return the array of nodes.
- pack.links - compute the parent-child links between tree nodes.
- pack.value - get or set the value accessor used to size circles.
- pack.size - specify the layout size in x and y.
- pack.padding - specify the layout padding in (approximate) pixels.
- d3.layout.pie - construct a new default pie layout.
- pie - compute the start and end angles for arcs in a pie or donut chart.
- pie.value - get or set the value accessor function.
- pie.sort - control the clockwise order of pie slices.
- pie.startAngle - get or set the overall start angle of the pie.
- pie.endAngle - get or set the overall end angle of the pie.
- d3.layout.stack - construct a new default stack layout.
- stack - compute the baseline for each series in a stacked bar or area chart.
- stack.values - get or set the values accessor function per series.
- stack.order - control the order in which series are stacked.
- stack.offset - specify the overall baseline algorithm.
- stack.x - get or set the x-dimension accessor function.
- stack.y - get or set the y-dimension accessor function.
- stack.out - get or set the output function for storing the baseline.
- d3.layout.tree - position a tree of nodes tidily.
- tree.sort - control the order in which sibling nodes are traversed.
- tree.children - get or set the children accessor function.
- tree.nodes - compute the tree layout and return the array of nodes.
- tree.links - compute the parent-child links between tree nodes.
- tree.separation - get or set the spacing function between neighboring nodes.
- tree.size - specify the layout size in x and y.