Public
Edited
Feb 22
2 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
latencyData = {
const today = new Date();
const data = [];
const dist1 = d3.randomNormal(200, 20);
const dist2 = d3.randomNormal(300, 30);
for (let i = -60; i < 0; i++) {
data.push({
date: d3.timeDay.offset(today, i),
value: (i < -30 ? dist1 : dist2)()
});
}
return data;
}
Insert cell
exponentialData = {
const rand = d3.randomNormal(0.1, 0.1);
const data = [{time: new Date(1989, 9, 19, 4, 30), value: 2}];
for (let i = 0; i < 1000; i++) {
const {time: t0, value: v0} = data.at(-1);
data.push({
time: d3.timeDay.offset(t0, 1),
value: v0 + (v0 * rand())
});
}
return data;
}
Insert cell
exponentialDataSlices = {
const randLen = d3.randomUniform(10, exponentialData.length);
return d3.range(9).map(() => exponentialData.slice(0, Math.floor(randLen())))
}
Insert cell
maxObservedExponential = d3.max(exponentialDataSlices.flatMap(d => d.map(d => d.value)))
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