Published
Edited
Jan 28, 2019
16 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
data = d3.json("https://gist.githubusercontent.com/mbostock/18a805e2d72da2020076665b6d4c9092/raw/53790c49c1cda43aae507285e507c4b89f83dc96/tax-rates.json")
Insert cell
function rate(brackets, income) {
var taxes = 0;
for (var i = 0; i < brackets.length; ++i) {
if (!brackets[i]) return NaN;
var rate = brackets[i][0],
value0 = brackets[i][1],
value1 = brackets[i + 1] ? brackets[i + 1][1] : Infinity;
if (income <= value0) break;
taxes += (Math.min(value1, income) - value0) * rate;
}
return taxes / income;
}
Insert cell
x = d3.scaleLinear()
.domain(d3.extent(data, d => d.year))
.range([margin.left, width - margin.right])
Insert cell
margin = ({top: 20, right: 20, bottom: 20, left: 40})
Insert cell
height = 600
Insert cell
d3 = require("d3@5")
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