Public
Edited
Nov 15, 2023
1 fork
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Plot.plot({
title: "🟩 Old (master branch) vs 🟥 New (develop branch)",
y: {type: yscale, domain: [1, 800], grid: true},
x: {type: "log", domain: [50e3, 1e9], grid: true},
color: {legend : true},
marks: [
Plot.line(countMaster, ({x: "x", y: "old", stroke: "green", strokeWidth: 3})),
Plot.line(countDevelop, ({x: "x", y: "new", stroke: "red", strokeWidth: 3})),
// Plot.line(countMasterx11, ({x: "x", y: "y", stroke: "blue", strokeWidth: 3})),
Plot.ruleY([0]),
// Plot.ruleX([127487, 569762]) // bracket 599 and 653
]
})
Insert cell
Insert cell
countMaster = mesh.map(([start, mid, end]) => ({
x: mid,
old: dataForYearMaster.filter(f => start < f.income && f.income <= end).length
}))
Insert cell
countMasterx11 = mesh.map(([start, mid, end]) => ({
x: mid,
y: dataForYearMasterx11.filter(f => start < f.income && f.income <= end).length
}))
Insert cell
countDevelop = mesh.map(([start, mid, end]) => ({
x: mid,
new: dataForYearDevelop.filter(f => start < f.income && f.income <= end).length
}))
Insert cell
Insert cell
mesh = {
const start = 0.0078125;
const end = 8192.0;
const nbrackets = 50
const step = Math.pow(end/start, 1/nbrackets);
return d3.range(billyBrackets)
.map(m => [start * Math.pow(step, m), start * Math.pow(step, m + 0.5), start * Math.pow(step, m + 1) ]);
}
Insert cell
Insert cell
dataForYearMaster = dataMaster
.map(m => ({income: +m.daily_income, time: +m.time}))
.filter(f => f.time === year && f.income)
Insert cell
dataForYearMasterx11 = dataMaster
.map(m => ({income: +m.daily_income * 11, time: +m.time}))
.filter(f => f.time === year && f.income)
Insert cell
dataForYearDevelop = dataDevelop
.map(m => ({income: +m.daily_income, time: +m.time}))
//.map(m => ({income: m.income * 0.03 / 365 * 1e6, time: +m.time}))
.filter(f => f.time === year && f.income)
Insert cell
Insert cell
dataDevelop = d3.csv("https://raw.githubusercontent.com/open-numbers/ddf--gapminder--billionaires/develop/ddf--datapoints--daily_income--by--person--time.csv")
// dataDevelop = d3.csv("https://raw.githubusercontent.com/open-numbers/ddf--gapminder--billionaires/282b9db155579625f33b2f2606fab6bc78b4a733/ddf--datapoints--daily_income--by--person--time.csv")

Insert cell
dataMaster = d3.csv("https://raw.githubusercontent.com/open-numbers/ddf--gapminder--billionaires/master/ddf--datapoints--daily_income--by--person--time.csv")
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