Charts · Sizing
Semantic chart sizing
Height follows the chart's information geometry: a matrix grows with its year-rows, a horizontal bar chart grows with its categories, and a compact readout stays compact. The colour domain can be made robust so a single outlier does not neutralise the rest.
Row-derived matrix
Twelve year-rows at a readable row height, a robust diverging domain centred on zero, and the return printed in every sufficiently large cell. The legend says '≥ / ≤' at the capped ends.
Monthly return calendar
Values are untouched; only the colour domain is capped.
Row-derived horizontal bars
A categorical bar chart grows one readable row per year and prints each value past the bar end; negative bars label on the left, positive on the right.
Annual return
Horizontal, zero-centred, value-labelled.
Historical position
A compact percentile readout: the served percentile with the conventional quantile ticks. No gauge, no recommendation — just where the reading sits in its own history.
30D return position
90D return position
1Y return position
Named sizes
For shape-driven charts, three named sizes replace per-chart pixels.
chartSizeHeight("compact") // 132
chartSizeHeight("medium") // 240
chartSizeHeight("large") // 340
matrixHeight(rows) // rows × rowHeight + header + footer
horizontalBarHeight(rows) // one readable row per category