visualization · native chart

TuxChartHistogram

Distribution chart over raw samples — hand it the observations and it bins, counts, and draws. Bin edges snap to 1/2/5 × 10k so ranges read "10–15 min", never "9.37–14.12 min". Built for the travel-time-reliability shape: the percentiles prop drops dashed gold rules at p50 / p95, the planning-time-index pair every reliability exhibit prints.

flagship · reliability

Travel-time distribution with p50 / p95

Real travel times are right-skewed: a tight free-flow cluster and a long incident tail. The distance between the two gold rules is the reliability story — a p95 far from the median means travelers must budget for the tail, not the average. Hover or arrow-key across bins for count + share.

0204060Count51525354555Corridor travel time (min)5–10: 110–15: 2815–20: 6620–25: 7725–30: 3830–35: 1435–40: 840–45: 545–50: 150–55: 155–60: 1 p50 · 21.3 p95 · 37.9
<tux-chart-histogram
  :values="travelTimes"
  :percentiles="[50, 95]"
  x-label="Corridor travel time (min)"
  units="trips"
/>

normalized · share of samples

Control delay, percent of intersections

normalize re-labels the y axis as percent of samples — right when two distributions with different sample sizes sit side by side in a TuxVizGrid and raw counts would mislead. bin-count is a target; the actual count lands nearby on nice edges.

0%2%4%6%8%% of samples1218243036424854Control delay (s)12–14: 114–16: 216–18: 318–20: 420–22: 1122–24: 1024–26: 226–28: 928–30: 1330–32: 1532–34: 1734–36: 1736–38: 1438–40: 1440–42: 842–44: 944–46: 946–48: 848–50: 950–52: 152–54: 354–56: 1
<tux-chart-histogram
  :values="controlDelays"
  normalize
  :bin-count="16"
  x-label="Control delay (s)"
  units="intersections"
/>