bar

Present

1-min readUpdated Sep 03, 2026main

Copied Raw Markdown!
Copied copy path!

Horizontal bars for comparing rows of one series. The default choice for a chart.

Cells: label | value. Extra options: total, max, sort.

Default scaleURL copied

Widths are relative to the largest row. Values print exactly as written, so 1,264 stays 1,264.

Commits touching each file
tasks.js264
scripts.js154
core.py141
pyproject.toml127
```bar title="Commits touching each file"
tasks.js | 264 @accent
scripts.js | 154
core.py | 141
pyproject.toml | 127 @muted
```

total=sum adds each row's shareURL copied

Use it when the rows partition a whole. The share is computed, so it cannot disagree with the counts.

Commits by time of day
18:00-23:59445 · 44.6%
12:00-17:59310 · 31.1%
06:00-11:59170 · 17.0%
00:00-05:5973 · 7.3%

total= a fixed wholeURL copied

When the rows are a selection rather than a partition, name the whole. The column then does not sum to 100, and that is honest.

Share of all 998 commits
tasks.js264 · 26.5%
scripts.js154 · 15.4%
core.py141 · 14.1%
Ten files out of 550, so this column sums to well under 100.

max=100 for a rateURL copied

A percentage that is itself the measurement is a value, not a computed share.

Subjects following the commit convention
Dec 202577
Jan 202695
Feb 20260
Mar 202617
Aug 202660

A value above max is clamped rather than allowed to overflow its track.

sort=descURL copied

Commits by weekday
Friday202 · 20.2%
Tuesday166 · 16.6%
Wednesday162 · 16.2%
Thursday142 · 14.2%
Sunday139 · 13.9%
Monday97 · 9.7%
Saturday90 · 9.0%

Non-numeric valuesURL copied

A cell that is not a number draws no bar but still prints. Missing data stays visible instead of reading as zero.

Coverage by module
renderer84
visuals96
excalidrawnot measured

Next: stack for parts of one whole, or src to read these rows from a file.