viewof flights = {
await vg.coordinator().exec(`CREATE TABLE IF NOT EXISTS flights10m AS
SELECT
GREATEST(-60, LEAST(ARR_DELAY, 180))::DOUBLE AS delay,
DISTANCE AS distance,
DEP_TIME AS time
FROM 'https://idl.uw.edu/mosaic-datasets/data/flights-10m.parquet'`);
const brush = vg.Selection.crossfilter();
const makePlot = column => vg.plot(
vg.rectY(
vg.from("flights10m", { filterBy: brush }),
{ x: vg.bin(column), y: vg.count(), fill: "steelblue", inset: 0.5 }
),
vg.intervalX({ as: brush }),
vg.xDomain(vg.Fixed),
vg.marginLeft(75),
vg.width(600),
vg.height(200)
);
return vg.vconcat(
makePlot("delay"),
makePlot("time"),
makePlot("distance")
);
}