Published
Edited
Aug 27, 2020
24 stars
Insert cell
Insert cell
Insert cell
function* randoms(n) {
for (let i = 0; i < n; ++i) {
yield Math.random();
}
}
Insert cell
Insert cell
d3.min(randoms(100))
Insert cell
d3.sum(randoms(100))
Insert cell
d3.extent(randoms(100))
Insert cell
Insert cell
d3.min(new Set([1, 4, 3, 2]))
Insert cell
d3.min(new Map([["foo", 10], ["bar", 2]]).values())
Insert cell
Insert cell
d3.cross(
["small", "large"],
["caf", "decaf"],
["skim", "whole", "almond"],
["latte", "cappucino"],
(...parts) => parts.join(" ")
)
Insert cell
Insert cell
data = [
{name: "jim", amount: "34.0", date: "11/12/2015"},
{name: "carl", amount: "120.11", date: "11/12/2015"},
{name: "stacy", amount: "12.01", date: "01/04/2016"},
{name: "stacy", amount: "34.05", date: "01/04/2016"}
]
Insert cell
d3.group(data, d => d.name)
Insert cell
Insert cell
d3.group(data, d => d.name, d => d.date)
Insert cell
Insert cell
d3.rollup(data, v => v.length, d => d.name, d => d.date)
Insert cell
d3.rollup(data, v => d3.sum(v, d => d.amount), d => d.name)
Insert cell
Insert cell
{
const values = Float64Array.from({length: 1e6}, Math.random);
const i = values.length >> 1;
d3.quickselect(values, i);
return values[i];
}
Insert cell
Insert cell
Insert cell
d3 = require("d3-array@2")
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more