Public
Edited
Jan 27
3 forks
7 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
color = d3
.scaleSequential((t) => d3.interpolateSpectral(1 - t))
.domain(d3.extent(data, (d) => d[2]))
.nice()
Insert cell
thresholds = color.ticks(ticks)
Insert cell
data = {
replay;
const noise = new Noise(2);
const p = 0.003; // freq
return Array.from({ length: 3000 }, () => {
const x = Math.random() * width,
y = Math.random() * height,
z = 40 + 220 * noise.noise(p * x, p * y);
return [x, y, z];
});
}
Insert cell
import { Noise } from "@mbostock/perlin-noise-contours"
Insert cell
d3 = require("d3@7", "d3-tricontour@1")
Insert cell
import {degrees} from "@fil/math"
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