fix(gui): percentili Calibrazione in riga compatta, no truncation
I valori percentili (es. -0.0298, 0.05323) renderizzati come ``st.metric`` su 7 colonne venivano tagliati su viewport stretti: ogni metric ha label sopra, font fisso, nessun shrink. Sostituito con render markdown inline a font 0.85rem, single-line, scrollabile orizzontalmente se serve. Tutti e 7 i percentili visibili senza troncamento e senza wrap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -167,9 +167,21 @@ def _percentiles_strip(s: pd.Series) -> None:
|
|||||||
st.caption("(nessun dato)")
|
st.caption("(nessun dato)")
|
||||||
return
|
return
|
||||||
quantiles = [0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95]
|
quantiles = [0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95]
|
||||||
cols = st.columns(len(quantiles))
|
# Inline markdown compatto: i valori a 4 cifre significative
|
||||||
for col, q in zip(cols, quantiles, strict=False):
|
# cadono regolarmente fuori dalla colonna se renderizzati con
|
||||||
col.metric(f"P{int(q * 100)}", f"{s.quantile(q):.4g}")
|
# ``st.metric`` (font fisso, label sopra, no shrink). Render
|
||||||
|
# orizzontale con font ridotto evita il troncamento.
|
||||||
|
parts = [
|
||||||
|
f"<b>P{int(q * 100)}</b> {s.quantile(q):.4g}"
|
||||||
|
for q in quantiles
|
||||||
|
]
|
||||||
|
html = (
|
||||||
|
"<div style='font-size:0.85rem;line-height:1.5;"
|
||||||
|
"white-space:nowrap;overflow-x:auto;'>"
|
||||||
|
+ " · ".join(parts)
|
||||||
|
+ "</div>"
|
||||||
|
)
|
||||||
|
st.markdown(html, unsafe_allow_html=True)
|
||||||
|
|
||||||
|
|
||||||
def _render_metric(spec: MetricSpec, records: list[MarketSnapshotRecord]) -> None:
|
def _render_metric(spec: MetricSpec, records: list[MarketSnapshotRecord]) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user