Public
Edited
Jul 19, 2024
Insert cell
Insert cell
Insert cell
Insert cell
data = [{name: "tomato", age: 4, cuteness: 5, group: "Group 1"},
{name: "potato", age: 6, cuteness: 2, group: "Group 2"},
{name: "durian", age: 9, cuteness: 10, group: "Group 2"},
{name: "banana", age: 10, cuteness: 3, group: "Group 3"},
{name: "pear", age: 15, cuteness: 4, group: "Group 2"},
{name: "onion", age: 45, cuteness: 9, group: "Group 1"},
{name: "grape", age: 98, cuteness: 9, group: "Group 1"}]
Insert cell
Insert cell
Insert cell
Insert cell
d3.max(data, d => d.age)
Insert cell
d3.min(data, d => d.age)
Insert cell
d3.median(data, d => d.age)
Insert cell
d3.extent(data, d => d.age)
Insert cell
Insert cell
Insert cell
object = ({name:"tomato", age:4})
Insert cell
object["name"]
Insert cell
object.name
Insert cell
Insert cell
Insert cell
oneMap = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Insert cell
// Create a Map
anotherMap = new Map();
Insert cell
// Set Map Values
anotherMap.set("apples", 500);
Insert cell
Insert cell
oneMap.get("apples")
Insert cell
Insert cell
Insert cell
oneSet = new Set(["a", "b", "c"])
Insert cell
AnotherSet = new Set()
Insert cell
AnotherSet.add("winter mellon")
Insert cell
Insert cell
Insert cell
oneArray = [1, 2, 3, 4, 5]
Insert cell
anotherArray = [{name: "tomato", age: 4}, 2, 3, 4]
Insert cell
Insert cell
anotherArray[0]
Insert cell
Insert cell
anotherArray[anotherArray.length - 1]
Insert cell
Insert cell
anotherArray.pop()
Insert cell
Insert cell
anotherArray.push("bunny")
Insert cell
Insert cell
anotherArray
Insert cell
Insert cell
Insert cell
stringToArray = Array.from("array")
Insert cell
Insert cell
oneMoreSet = new Set(["winter mellon", "watermellon", "squash"])
Insert cell
setToArray = Array.from("oneMoreSet")
Insert cell
Insert cell
mapToArray = Array.from(oneMap)
Insert cell
Insert cell
Insert cell
Insert cell
d3.filter(data, d => d.age > 20)
Insert cell
Insert cell
d3.filter(data, d => d.name === "grape")
Insert cell
Insert cell
toKeep = ["banana", "grape", "durian"]
Insert cell
d3.filter(data, d => toKeep.indexOf(d.name) >= 0)
Insert cell
Insert cell
d3.filter(data, (d, i) => i < 3)
Insert cell
Insert cell
Insert cell
d3.sort(data, (a, b) => b.age - a.age)
Insert cell
d3.sort(data, (a, b) => d3.ascending(b.age, a.age))
Insert cell
Insert cell
d3.sort(data, (a, b) => d3.ascending(b.age, a.age) || d3.ascending(b.cuteness, a.cuteness))
Insert cell
Insert cell
Insert cell
allNames = d3.map(data, d => d.name)
Insert cell
double = d3.map(data, d => d.cuteness * 2)
Insert cell
wordLength = d3.map(data, d => d.name.length)
Insert cell
Insert cell
Insert cell
Insert cell
nameGroup = d3.group(data, cereal => cereal.name)
Insert cell
nameGroup.get("tomato")
Insert cell
Insert cell
Insert cell
d3.rollup(data,
l => l.length,
d => d.group)
Insert cell
d3.rollup(data,
l => d3.sum(l, d => d.cuteness),
d => d.group)
Insert cell
Insert cell
Insert cell
index = d3.index(data, d => d.name)
Insert cell
Insert cell
Insert cell
d3.index(data, d => d.group)
Insert cell
Insert cell
Insert cell
Insert cell
import {textcolor} from "@observablehq/text-color-annotations-in-markdown"
Insert cell
import {toc} from "@jonfroehlich/collapsible-toc"
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