Scatter charts compare two numeric values.
Model for this example
source: flights is duckdb.table('../data/flights.parquet') extend { join_one: aircraft is duckdb.table('../data/aircraft.parquet') extend { join_one: aircraft_models is duckdb.table('../data/aircraft_models.parquet') on aircraft_model_code = aircraft_models.aircraft_model_code } on tail_num = aircraft.tail_num }
# scatter_chart run: flights -> { where: origin = 'ORD' group_by: seats is aircraft.aircraft_models.seats group_by: distance is distance aggregate: route_count is count(distinct concat(origin, destination)) }
[ { "seats": 200, "distance": 1437, "route_count": 2 }, { "seats": 179, "distance": 1437, "route_count": 2 }, { "seats": 22, "distance": 723, "route_count": 1 }, { "seats": 200, "distance": 723, "route_count": 1 }, { "seats": 172, "distance": 723, "route_count": 1 }, { "seats": 200, "distance": 606, "route_count": 1 }, { "seats": 130, "distance": 606, "route_count": 1 }, { "seats": 22, "distance": 606, "route_count": 1 }, { "seats": 330, "distance": 606, "route_count": 1 }, { "seats": 172, "distance": 606, "route_count": 1 }, { "seats": 178, "distance": 606, "route_count": 1 }, { "seats": 179, "distance": 606, "route_count": 1 }, { "seats": 172, "distance": 972, "route_count": 1 }, { "seats": 200, "distance": 972, "route_count": 1 }, { "seats": 172, "distance": 978, "route_count": 1 }, { "seats": 200, "distance": 783, "route_count": 1 }, { "seats": 172, "distance": 783, "route_count": 1 }, { "seats": 178, "distance": 783, "route_count": 1 }, { "seats": 172, "distance": 409, "route_count": 1 }, { "seats": 22, "distance": 409, "route_count": 1 }, { "seats": 200, "distance": 409, "route_count": 1 }, { "seats": 200, "distance": 867, "route_count": 1 }, { "seats": 172, "distance": 867, "route_count": 1 }, { "seats": 178, "distance": 867, "route_count": 1 }, { "seats": 179, "distance": 867, "route_count": 1 }, { "seats": 200, "distance": 473, "route_count": 1 }, { "seats": 22, "distance": 473, "route_count": 1 }, { "seats": 172, "distance": 473, "route_count": 1 }, { "seats": 200, "distance": 621, "route_count": 1 }, { "seats": 172, "distance": 621, "route_count": 1 }, { "seats": 22, "distance": 621, "route_count": 1 }, { "seats": 178, "distance": 621, "route_count": 1 }, { "seats": 55, "distance": 316, "route_count": 1 }, { "seats": 200, "distance": 316, "route_count": 1 }, { "seats": 22, "distance": 316, "route_count": 1 }, { "seats": 149, "distance": 316, "route_count": 1 }, { "seats": 37, "distance": 316, "route_count": 1 }, { "seats": 172, "distance": 316, "route_count": 1 }, { "seats": 149, "distance": 599, "route_count": 1 }, { "seats": 200, "distance": 599, "route_count": 1 }, { "seats": 179, "distance": 599, "route_count": 1 }, { "seats": 200, "distance": 911, "route_count": 1 }, { "seats": 22, "distance": 911, "route_count": 1 }, { "seats": 130, "distance": 264, "route_count": 1 }, { "seats": 200, "distance": 264, "route_count": 1 }, { "seats": 178, "distance": 264, "route_count": 1 }, { "seats": 200, "distance": 240, "route_count": 1 }, { "seats": 22, "distance": 240, "route_count": 1 }, { "seats": 200, "distance": 612, "route_count": 1 }, { "seats": 70, "distance": 612, "route_count": 1 }, { "seats": 172, "distance": 612, "route_count": 1 }, { "seats": 179, "distance": 240, "route_count": 1 }, { "seats": 179, "distance": 612, "route_count": 1 }, { "seats": 200, "distance": 888, "route_count": 1 }, { "seats": 400, "distance": 888, "route_count": 1 }, { "seats": 172, "distance": 888, "route_count": 1 }, { "seats": 178, "distance": 888, "route_count": 1 }, { "seats": 172, "distance": 802, "route_count": 1 }, { "seats": 200, "distance": 802, "route_count": 1 }, { "seats": 22, "distance": 299, "route_count": 1 }, { "seats": 200, "distance": 299, "route_count": 1 }, { "seats": 200, "distance": 235, "route_count": 1 }, { "seats": 178, "distance": 235, "route_count": 1 }, { "seats": 172, "distance": 235, "route_count": 1 }, { "seats": 145, "distance": 235, "route_count": 1 }, { "seats": 134, "distance": 235, "route_count": 1 }, { "seats": 182, "distance": 235, "route_count": 1 }, { "seats": 172, "distance": 719, "route_count": 1 }, { "seats": 149, "distance": 719, "route_count": 1 }, { "seats": 55, "distance": 719, "route_count": 1 }, { "seats": 200, "distance": 719, "route_count": 1 }, { "seats": 178, "distance": 719, "route_count": 1 }, { "seats": 172, "distance": 1182, "route_count": 1 }, { "seats": 130, "distance": 1182, "route_count": 1 }, { "seats": 200, "distance": 1182, "route_count": 1 }, { "seats": 2, "distance": 1182, "route_count": 1 }, { "seats": 22, "distance": 738, "route_count": 1 }, { "seats": 200, "distance": 589, "route_count": 1 }, { "seats": 400, "distance": 589, "route_count": 1 }, { "seats": 149, "distance": 925, "route_count": 1 }, { "seats": 172, "distance": 925, "route_count": 1 }, { "seats": 200, "distance": 925, "route_count": 1 }, { "seats": 55, "distance": 925, "route_count": 1 }, { "seats": 200, "distance": 1515, "route_count": 1 }, { "seats": 172, "distance": 1515, "route_count": 1 }, { "seats": 178, "distance": 1515, "route_count": 1 }, { "seats": 200, "distance": 1745, "route_count": 1 }, { "seats": 2, "distance": 1745, "route_count": 1 }, { "seats": 400, "distance": 1745, "route_count": 1 }, { "seats": 255, "distance": 1745, "route_count": 1 }, { "seats": 172, "distance": 1745, "route_count": 1 }, { "seats": 178, "distance": 1745, "route_count": 1 }, { "seats": 179, "distance": 1745, "route_count": 1 }, { "seats": 172, "distance": 733, "route_count": 1 }, { "seats": 200, "distance": 733, "route_count": 1 }, { "seats": 172, "distance": 1735, "route_count": 1 }, { "seats": 178, "distance": 733, "route_count": 1 }, { "seats": 22, "distance": 552, "route_count": 1 }, { "seats": 22, "distance": 215, "route_count": 1 }, { "seats": 172, "distance": 403, "route_count": 1 }, { "seats": 200, "distance": 403, "route_count": 1 }, { "seats": 200, "distance": 1005, "route_count": 1 }, { "seats": 130, "distance": 1005, "route_count": 1 }, { "seats": 172, "distance": 1197, "route_count": 1 }, { "seats": 400, "distance": 1197, "route_count": 1 }, { "seats": 2, "distance": 1197, "route_count": 1 }, { "seats": 200, "distance": 1197, "route_count": 1 }, { "seats": 172, "distance": 334, "route_count": 1 }, { "seats": 200, "distance": 334, "route_count": 1 }, { "seats": 145, "distance": 334, "route_count": 1 }, { "seats": 134, "distance": 334, "route_count": 1 }, { "seats": 182, "distance": 334, "route_count": 1 }, { "seats": 22, "distance": 334, "route_count": 1 }, { "seats": 172, "distance": 837, "route_count": 1 }, { "seats": 200, "distance": 837, "route_count": 1 }, { "seats": 22, "distance": 693, "route_count": 1 }, { "seats": 172, "distance": 693, "route_count": 1 }, { "seats": 22, "distance": 416, "route_count": 1 }, { "seats": 200, "distance": 416, "route_count": 1 }, { "seats": 172, "distance": 416, "route_count": 1 }, { "seats": 200, "distance": 1739, "route_count": 1 }, { "seats": 172, "distance": 1739, "route_count": 1 }, { "seats": 178, "distance": 1739, "route_count": 1 }, { "seats": 200, "distance": 678, "route_count": 1 }, { "seats": 149, "distance": 678, "route_count": 1 }, { "seats": 172, "distance": 678, "route_count": 1 }, { "seats": 178, "distance": 678, "route_count": 1 }, { "seats": 179, "distance": 678, "route_count": 1 }, { "seats": 200, "distance": 1440, "route_count": 1 }, { "seats": 172, "distance": 1440, "route_count": 1 }, { "seats": 178, "distance": 1440, "route_count": 1 }, { "seats": 70, "distance": 412, "route_count": 1 }, { "seats": 149, "distance": 412, "route_count": 1 }, { "seats": 200, "distance": 412, "route_count": 1 }, { "seats": 179, "distance": 412, "route_count": 1 }, { "seats": 200, "distance": 849, "route_count": 1 }, { "seats": 172, "distance": 849, "route_count": 1 }, { "seats": 22, "distance": 900, "route_count": 1 }, { "seats": 200, "distance": 647, "route_count": 1 }, { "seats": 172, "distance": 1723, "route_count": 1 }, { "seats": 200, "distance": 1723, "route_count": 1 }, { "seats": 2, "distance": 1723, "route_count": 1 }, { "seats": 178, "distance": 1723, "route_count": 1 }, { "seats": 200, "distance": 1721, "route_count": 1 }, { "seats": 172, "distance": 1721, "route_count": 1 }, { "seats": 400, "distance": 1721, "route_count": 1 }, { "seats": 178, "distance": 1721, "route_count": 1 }, { "seats": 179, "distance": 723, "route_count": 1 }, { "seats": 179, "distance": 972, "route_count": 1 }, { "seats": 179, "distance": 783, "route_count": 1 }, { "seats": 179, "distance": 473, "route_count": 1 }, { "seats": 179, "distance": 621, "route_count": 1 }, { "seats": 178, "distance": 316, "route_count": 1 }, { "seats": 179, "distance": 316, "route_count": 1 }, { "seats": 22, "distance": 296, "route_count": 1 }, { "seats": 200, "distance": 296, "route_count": 1 }, { "seats": 172, "distance": 296, "route_count": 1 }, { "seats": 178, "distance": 296, "route_count": 1 }, { "seats": 179, "distance": 296, "route_count": 1 }, { "seats": 178, "distance": 911, "route_count": 1 }, { "seats": 179, "distance": 911, "route_count": 1 }, { "seats": 179, "distance": 264, "route_count": 1 }, { "seats": 179, "distance": 888, "route_count": 1 }, { "seats": 179, "distance": 802, "route_count": 1 }, { "seats": 178, "distance": 299, "route_count": 1 }, { "seats": 179, "distance": 299, "route_count": 1 }, { "seats": 179, "distance": 235, "route_count": 1 }, { "seats": 179, "distance": 719, "route_count": 1 }, { "seats": 178, "distance": 1182, "route_count": 1 }, { "seats": 179, "distance": 1182, "route_count": 1 }, { "seats": 178, "distance": 589, "route_count": 1 }, { "seats": 179, "distance": 589, "route_count": 1 }, { "seats": 179, "distance": 925, "route_count": 1 }, { "seats": 200, "distance": 177, "route_count": 1 }, { "seats": 22, "distance": 177, "route_count": 1 }, { "seats": 172, "distance": 177, "route_count": 1 }, { "seats": 178, "distance": 177, "route_count": 1 }, { "seats": 179, "distance": 177, "route_count": 1 }, { "seats": 179, "distance": 1515, "route_count": 1 }, { "seats": 179, "distance": 733, "route_count": 1 }, { "seats": 179, "distance": 466, "route_count": 1 }, { "seats": 178, "distance": 403, "route_count": 1 }, { "seats": 179, "distance": 403, "route_count": 1 }, { "seats": 179, "distance": 1005, "route_count": 1 }, { "seats": 178, "distance": 843, "route_count": 1 }, { "seats": 179, "distance": 843, "route_count": 1 }, { "seats": 178, "distance": 1197, "route_count": 1 }, { "seats": 179, "distance": 1197, "route_count": 1 }, { "seats": 178, "distance": 334, "route_count": 1 }, { "seats": 179, "distance": 334, "route_count": 1 }, { "seats": 178, "distance": 837, "route_count": 1 }, { "seats": 200, "distance": 1835, "route_count": 1 }, { "seats": 172, "distance": 1081, "route_count": 1 }, { "seats": 178, "distance": 1835, "route_count": 1 }, { "seats": 179, "distance": 1835, "route_count": 1 }, { "seats": 178, "distance": 416, "route_count": 1 }, { "seats": 179, "distance": 416, "route_count": 1 }, { "seats": 179, "distance": 1440, "route_count": 1 }, { "seats": 172, "distance": 1652, "route_count": 1 }, { "seats": 178, "distance": 849, "route_count": 1 }, { "seats": 179, "distance": 1652, "route_count": 1 }, { "seats": 179, "distance": 849, "route_count": 1 }, { "seats": 179, "distance": 647, "route_count": 1 }, { "seats": 172, "distance": 1671, "route_count": 1 }, { "seats": 172, "distance": 528, "route_count": 1 }, { "seats": 22, "distance": 528, "route_count": 1 }, { "seats": 200, "distance": 528, "route_count": 1 }, { "seats": 179, "distance": 528, "route_count": 1 }, { "seats": 200, "distance": 1120, "route_count": 1 }, { "seats": 172, "distance": 1120, "route_count": 1 }, { "seats": 178, "distance": 1120, "route_count": 1 }, { "seats": 179, "distance": 1120, "route_count": 1 }, { "seats": 179, "distance": 1723, "route_count": 1 }, { "seats": 172, "distance": 1041, "route_count": 1 }, { "seats": 200, "distance": 1041, "route_count": 1 }, { "seats": 179, "distance": 1041, "route_count": 1 }, { "seats": 179, "distance": 1721, "route_count": 1 }, { "seats": 200, "distance": 1846, "route_count": 1 }, { "seats": 400, "distance": 1846, "route_count": 1 }, { "seats": 2, "distance": 1846, "route_count": 1 }, { "seats": 172, "distance": 1846, "route_count": 1 }, { "seats": 255, "distance": 1846, "route_count": 1 }, { "seats": 178, "distance": 1846, "route_count": 1 }, { "seats": 179, "distance": 1846, "route_count": 1 }, { "seats": 200, "distance": 1829, "route_count": 1 }, { "seats": 172, "distance": 1829, "route_count": 1 }, { "seats": 179, "distance": 1829, "route_count": 1 }, { "seats": 2, "distance": 2072, "route_count": 1 }, { "seats": 200, "distance": 1781, "route_count": 1 }, { "seats": 178, "distance": 1726, "route_count": 1 }, { "seats": 172, "distance": 1726, "route_count": 1 }, { "seats": 172, "distance": 258, "route_count": 1 }, { "seats": 200, "distance": 258, "route_count": 1 }, { "seats": 200, "distance": 1012, "route_count": 1 }, { "seats": 172, "distance": 1012, "route_count": 1 }, { "seats": 172, "distance": 1118, "route_count": 1 }, { "seats": 200, "distance": 763, "route_count": 1 }, { "seats": 22, "distance": 196, "route_count": 1 }, { "seats": 172, "distance": 1236, "route_count": 1 }, { "seats": 200, "distance": 1498, "route_count": 1 }, { "seats": 22, "distance": 137, "route_count": 1 }, { "seats": 200, "distance": 137, "route_count": 1 }, { "seats": 200, "distance": 590, "route_count": 1 }, { "seats": 2, "distance": 4243, "route_count": 1 }, { "seats": 400, "distance": 4243, "route_count": 1 }, { "seats": 22, "distance": 588, "route_count": 1 }, { "seats": 200, "distance": 740, "route_count": 1 }, { "seats": 22, "distance": 594, "route_count": 1 }, { "seats": 200, "distance": 594, "route_count": 1 }, { "seats": 182, "distance": 491, "route_count": 1 }, { "seats": 134, "distance": 491, "route_count": 1 }, { "seats": 22, "distance": 67, "route_count": 1 }, { "seats": 55, "distance": 753, "route_count": 1 }, { "seats": 2, "distance": 4184, "route_count": 1 }, { "seats": 200, "distance": 1700, "route_count": 1 }, { "seats": 200, "distance": 1144, "route_count": 1 }, { "seats": 172, "distance": 1144, "route_count": 1 }, { "seats": 70, "distance": 678, "route_count": 1 }, { "seats": 200, "distance": 642, "route_count": 1 }, { "seats": 22, "distance": 286, "route_count": 1 }, { "seats": 172, "distance": 1249, "route_count": 1 }, { "seats": 172, "distance": 607, "route_count": 1 }, { "seats": 172, "distance": 585, "route_count": 1 }, { "seats": 172, "distance": 1437, "route_count": 1 }, { "seats": 22, "distance": 522, "route_count": 1 }, { "seats": 172, "distance": 522, "route_count": 1 }, { "seats": 178, "distance": 2846, "route_count": 1 }, { "seats": 149, "distance": 1515, "route_count": 1 }, { "seats": 178, "distance": 67, "route_count": 1 }, { "seats": 178, "distance": 1700, "route_count": 1 }, { "seats": 178, "distance": 1144, "route_count": 1 }, { "seats": 149, "distance": 1440, "route_count": 1 }, { "seats": 179, "distance": 763, "route_count": 1 }, { "seats": 179, "distance": 1498, "route_count": 1 }, { "seats": 179, "distance": 137, "route_count": 1 }, { "seats": 179, "distance": 590, "route_count": 1 }, { "seats": 179, "distance": 594, "route_count": 1 }, { "seats": 179, "distance": 717, "route_count": 1 }, { "seats": 179, "distance": 1144, "route_count": 1 }, { "seats": 179, "distance": 642, "route_count": 1 }, { "seats": 178, "distance": 1829, "route_count": 1 }, { "seats": 200, "distance": 1249, "route_count": 1 }, { "seats": 178, "distance": 1249, "route_count": 1 }, { "seats": 179, "distance": 1249, "route_count": 1 }, { "seats": 178, "distance": 1781, "route_count": 1 }, { "seats": 172, "distance": 1781, "route_count": 1 }, { "seats": 179, "distance": 1781, "route_count": 1 }, { "seats": 200, "distance": 1726, "route_count": 1 }, { "seats": 179, "distance": 1726, "route_count": 1 }, { "seats": 179, "distance": 258, "route_count": 1 }, { "seats": 200, "distance": 2116, "route_count": 1 }, { "seats": 22, "distance": 607, "route_count": 1 }, { "seats": 200, "distance": 607, "route_count": 1 }, { "seats": 179, "distance": 607, "route_count": 1 }, { "seats": 178, "distance": 1012, "route_count": 1 }, { "seats": 179, "distance": 1012, "route_count": 1 }, { "seats": 172, "distance": 647, "route_count": 1 }, { "seats": 178, "distance": 612, "route_count": 1 }, { "seats": 200, "distance": 843, "route_count": 1 }, { "seats": 179, "distance": 837, "route_count": 1 }, { "seats": 55, "distance": 264, "route_count": 1 }, { "seats": 145, "distance": 491, "route_count": 1 }, { "seats": 179, "distance": 1739, "route_count": 1 }, { "seats": 200, "distance": 717, "route_count": 1 }, { "seats": 172, "distance": 1005, "route_count": 1 }, { "seats": 178, "distance": 1005, "route_count": 1 }, { "seats": 200, "distance": 2072, "route_count": 1 }, { "seats": 55, "distance": 740, "route_count": 1 } ]
SELECT aircraft_models_0."seats" as "seats", flights."distance" as "distance", count(distinct CONCAT(flights."origin",flights."destination")) as "route_count" FROM '../data/flights.parquet' as flights LEFT JOIN '../data/aircraft.parquet' AS aircraft_0 ON flights."tail_num"=aircraft_0."tail_num" LEFT JOIN '../data/aircraft_models.parquet' AS aircraft_models_0 ON aircraft_0."aircraft_model_code"=aircraft_models_0."aircraft_model_code" WHERE flights."origin"='ORD' GROUP BY 1,2 ORDER BY 3 desc NULLS LAST
Run as a trellis
run: flights -> { group_by: origin # scatter_chart nest: seats_by_distance_scatter_chart is { group_by: seats is aircraft.aircraft_models.seats group_by: distance is distance aggregate: route_count is count(distinct concat(origin, destination)) } }
origin | seats_​by_​distance |
---|---|
ABE | |
ABI | |
ABQ | |
ABY | |
ACK | |
ACT | |
ACY | |
AEX | |
AGS | |
ALB | |
AMA | |
ANC | |
ATL | |
ATW | |
AUS | |
AVL | |
AVP | |
AZO | |
BDL | |
BFL | |
BGM | |
BGR | |
BHM | |
BIL | |
BIS | |
BNA | |
BOI | |
BOS | |
BPT | |
BQK | |
BQN | |
BRO | |
BTR | |
BTV | |
BUF |