Published
Edited
Sep 20, 2020
2 stars
Insert cell
md`# World Bilateral Migration`
Insert cell
{
const LIMIT = 1500000;
const linkData = (await getLinkData()).filter(d => d.value > LIMIT);
return drawCDD(
linkData,
Object({
caption: `World Bilateral Migration, 2017 (At least ${formatNumber(
LIMIT
)} migrants)`
})
);
}
Insert cell
md`### Appendix: Code`
Insert cell
d3 = require('d3@6')
Insert cell
import { drawCDD } from '@nuuuwan/chord-dependency-diagram'
Insert cell
import { formatNumber } from '@nuuuwan/string-utils'
Insert cell
async function getLinkData() {
return await d3.csv(
'https://raw.githubusercontent.com/nuuuwan/misc-sl-data/master/migration.graph.links.2017.un.csv'
);
}
Insert cell
(await getLinkData())[0]
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