Published
Edited
Nov 21, 2020
Insert cell
md`# Virginia State Legislator Financial Disclosure`
Insert cell
data = (await fetch(`https://vpap-production.s3.amazonaws.com/media/visuals/custom/datasets/seischc_legislatorportfolios_2020.json`)).json()
Insert cell
d3 = require("d3-array@2", "d3-dsv@2", "d3-fetch@2", "d3-time@2")
Insert cell
delegates = data.filter(item => item.legislator_name.startsWith("Del."));
Insert cell
senators = data.filter(item => item.legislator_name.startsWith("Sen."));
Insert cell
delegateAmounts = delegates.map(item => item.minimum_amount)
Insert cell
d3.median(delegates.map(item => item.minimum_amount))
Insert cell
d3.median(senators.map(item => item.minimum_amount))
Insert cell
import {chart as delegateHistogram}
with {delegateAmounts as data}
from "@d3/histogram"
Insert cell
delegateHistogram
Insert cell
senatorAmounts = senators.map(item => item.minimum_amount)
Insert cell
import {chart as senatorHistogram}
with {senatorAmounts as data}
from "@d3/histogram"
Insert cell
senatorHistogram
Insert cell
delegateAges = delegates.map(item => item.age)
Insert cell
senatorAges = senators.map(item => item.age)
Insert cell
import {chart as delegateAgeHistogram}
with {delegateAges as data}
from "@d3/histogram"
Insert cell
delegateAgeHistogram
Insert cell
d3.median(delegateAges)
Insert cell
d3.median(senatorAges)
Insert cell
import {chart as senatorAgeHistogram}
with {senatorAges as data}
from "@d3/histogram"
Insert cell
senatorAgeHistogram
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