Published
Edited
Feb 6, 2019
Insert cell
Insert cell
Insert cell
image = flood // See the import down below! 🌈
Insert cell
height = 450 // Try changing this value and clicking the play button ▶︎.
Insert cell
Insert cell
`My favorite number is ${2 * 3 * 7}.`
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
import {canvas as flood} with {height} from "@mbostock/randomized-flood-fill"
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
2 * 3 * 7
Insert cell
Insert cell
{
let x = 0;
for (let i = 1; i <= 100; ++i) {
x += i;
}
return x;
}
Insert cell
Insert cell
x + 2 // x is not accessible here!
Insert cell
Insert cell
({top: 20, right: 20, bottom: 30, left: 40})
Insert cell
Insert cell
function greet(name) {
return `Hello, ${name}!`;
}
Insert cell
Insert cell
greet("Carlos")
Insert cell
greet("Class")
Insert cell
Insert cell
color = "red"
Insert cell
Insert cell
letters = { return "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("") }
Insert cell
Insert cell
letters.map(l => l.toLowerCase())
Insert cell
Insert cell
fullName = `${firstName} ${lastName}`
Insert cell
lastName = "Lovelace"
Insert cell
firstName = "Ada"
Insert cell
Insert cell
randomWalk = {
let y = 16, values = [y];
for (let x = 0; x < width; ++x) values.push(y = y + (Math.random() - 0.5) * 3 + (16 - y) * 0.1);
return values;
}
Insert cell
{
const context = DOM.context2d(width, 33);
context.beginPath();
context.moveTo(0, randomWalk[0]);
for (let x = 0; x < width; ++x)
context.lineTo(x, randomWalk[x]);
context.lineJoin = context.lineCap = "round";
context.strokeStyle = stroke;
context.stroke();
return context.canvas;
}
Insert cell
stroke = "green"
Insert cell
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