Published
Edited
Sep 12, 2020
2 forks
5 stars
Insert cell
Insert cell
expenses = [{"name":"jim","amount":34,"date":"11/12/2015"},
{"name":"carl","amount":120.11,"date":"11/12/2015"},
{"name":"jim","amount":45,"date":"12/01/2015"},
{"name":"stacy","amount":12.00,"date":"01/04/2016"},
{"name":"stacy","amount":34.10,"date":"01/04/2016"},
{"name":"stacy","amount":44.80,"date":"01/05/2016"}
]
Insert cell
Insert cell
expensesByName = d3.nest()
.key(d => d.name)
.entries(expenses)
Insert cell
Insert cell
Insert cell
Insert cell
expensesCount = d3.nest()
.key(d => d.name)
.rollup(v => v.length)
.entries(expenses)
Insert cell
Insert cell
expensesAvgAmount = d3.nest()
.key(d => d.name)
.rollup(v => d3.mean(v, d => d.amount))
.entries(expenses)
Insert cell
Insert cell
expenseMetrics = d3.nest()
.key(d => d.name)
.rollup(v => ({
count: v.length,
total: d3.sum(v, d => d.amount),
avg: d3.mean(v, d => d.amount)
}))
.entries(expenses)
Insert cell
Insert cell
expensesTotal = d3.nest()
.key(d => d.name)
.rollup(v => d3.sum(v, d => d.amount))
.object(expenses)
Insert cell
Insert cell
expensesTotalByName = d3.nest()
.key(d => d.name)
.key(d => d.date)
.rollup(v => d3.sum(v, d => d.amount))
.object(expenses)
Insert cell
Insert cell
expensesTotalByDay = d3.nest()
.key(d => d.date)
.key(d => d.name)
.rollup(v => d3.sum(v, d => d.amount))
.object(expenses)
Insert cell
Insert cell
expensesByYear = d3.nest()
.key(d => d.date.split("/")[2])
.rollup(v => d3.sum(v, d => d.amount))
.object(expenses)
Insert cell
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