Public
Edited
Mar 8, 2023
Insert cell
Insert cell
Insert cell
Plot.plot({
facet:{
data: df, x: "decade"
},
x:{
domain: df.data.decade
},
y: {
grid: true
},
marks: [
Plot.rectY(df, Plot.binX({y: "proportion"}, {x: "crashRetirementPercent", facet: true})),
Plot.ruleY([0])
]
})
Insert cell
import {database} from "@akraieski/formula-1-sqlite-chart-template"
Insert cell
database
SELECT res.grid, drivers.driverRef, drivers.surname, res.laps, res.position, res.points, ra.year, ra.name, st.status, (CAST(ra.year AS INTEGER) / 10) * 10 AS decade
FROM results AS res
LEFT JOIN races AS ra
on res.raceId=ra.raceID
LEFT JOIN drivers
on res.driverId=drivers.driverId
LEFT JOIN status AS st
on res.statusId=st.statusId
LEFT JOIN constructors AS co
on res.constructorId=co.constructorId
WHERE st.status NOT IN ("Did not qualify", "Did not prequalify", "Withdrew");
Insert cell
df = aq.from(query)
.groupby("decade", "driverRef")
.rollup({
crash_retirements: d => op.sum(op.includes(["Accident", "Collision", "Collision damage"], d.status)),
races: d => op.count()
})
.derive({
crashRetirementPercent: d => d.crash_retirements / d.races,
})
Insert cell
import {op, aq} from "@uwdata/arquero"

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