prototype: graph encoding variants for hourly history decision (wayfinder #68)
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# PROTOTYPE — graph encoding & hourly drill-down (throwaway)
|
||||
|
||||
Answers wayfinder ticket **Choose daily graph encoding and hourly drill-down**
|
||||
on map **Fenris TUI polish and hourly history**.
|
||||
Not production code. Do not merge onto main.
|
||||
|
||||
## Question
|
||||
|
||||
Which graph encoding best communicates hourly writes and a day's usage
|
||||
without misleading: daily bars vs one candle per day vs rolling hourly strip,
|
||||
with range -> selected day -> hourly detail -> back navigation.
|
||||
|
||||
## Run
|
||||
|
||||
./run # or: python3 tui_prototype.py
|
||||
|
||||
## Variants (switch with [ and ])
|
||||
|
||||
- **A — Daily bars**: one bar per local display day (bytes written), drill
|
||||
into 24 hourly bars with Enter / click.
|
||||
- **B — Daily candles**: one candle per day derived from hourly values
|
||||
(open = first evidenced hour, close = last, high/low = max/min hourly).
|
||||
Same drill-down.
|
||||
- **C — Rolling hourly strip**: continuous last-72-hours columns with day
|
||||
separators; click an hour for its readout (no day level).
|
||||
|
||||
## Data states encoded (synthetic)
|
||||
|
||||
measured zero (0 B) · gap / no evidence · unallocated usage (measured,
|
||||
attribution unknown) · partial day ("so far") · deliberate-disable pause band ·
|
||||
day before monitoring began.
|
||||
|
||||
Gaps never render as zero. Unallocated is a separate visual segment, never
|
||||
spread into hours.
|
||||
|
||||
## Framework facts verified
|
||||
|
||||
Textual 8.2.8 (installed): no BarChart widget (roadmap-only), Sparkline is
|
||||
non-interactive. Bars/candles here are a custom Static renderable; mouse
|
||||
clicks map via widget-local x. No new dependencies.
|
||||
|
||||
## Screenshots
|
||||
|
||||
screenshots/ holds SVG exports at 80x24 and 140x40 per variant.
|
||||
Regenerate with: python3 capture.py
|
||||
Reference in New Issue
Block a user