From 3d69375c010b449aa2dec0f6726c7bb58425644c Mon Sep 17 00:00:00 2001 From: Sven Geboers Date: Sun, 12 Apr 2026 21:34:13 +0200 Subject: [PATCH] refactor: remove motion listings from compass view, keep voting discipline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the '๐Ÿ” Wat bepaalt deze assen?' expander that showed individual motion titles (โž•/โž–) with axis labels and variance explanation. Only the Stemdiscipline analyse (Rice index) section remains. Also removes the now-unused _render_axis_motions() helper function. --- explorer.py | 65 ++++++++++------------------------------------------- 1 file changed, 12 insertions(+), 53 deletions(-) diff --git a/explorer.py b/explorer.py index e67baf8..7ca115a 100644 --- a/explorer.py +++ b/explorer.py @@ -469,19 +469,6 @@ def _swap_axes( return projections.swap_axes(positions_by_window, axis_def) -def _render_axis_motions(label: str, conf_pct: str, top: dict) -> None: - st.markdown(f"**{label}**{conf_pct}") - for sign, icon in (("+", "โž•"), ("-", "โž–")): - titles = top.get(sign, []) - if titles: - st.markdown( - "  " - + icon - + " " - + " ยท ".join(f"{t} ({d})" for t, d in titles[:3]) - ) - - @st.cache_data(show_spinner="2D posities berekenen (kan even duren)โ€ฆ") def load_positions( db_path: str, window_size: str = "annual" @@ -1576,47 +1563,19 @@ def build_compass_tab(db_path: str, window_size: str) -> None: ): st.caption(_y_interp) - # Motion expander โ€” show which motions define each axis for this window - x_top = axis_def.get("x_top_motions", {}).get(window_idx, {}) - y_top = axis_def.get("y_top_motions", {}).get(window_idx, {}) - x_conf = axis_def.get("x_label_confidence", {}).get(window_idx) - y_conf = axis_def.get("y_label_confidence", {}).get(window_idx) - evr = axis_def.get("explained_variance_ratio", [None, None]) - evr0 = evr[0] if evr else None - - _has_motion_data = bool( - x_top.get("+") or x_top.get("-") or y_top.get("+") or y_top.get("-") + # Voting discipline analysis + st.markdown("---") + st.markdown( + "**Stemdiscipline analyse:** De Rice-index meet hoe eensgezind partijen stemmen " + "tijdens hoofdelijke stemmingen. Een score van 100% betekent dat alle MPs van " + "een partij hetzelfde stemden; 50% wijst op een gelijke splitsing binnen de partij. " + "Partijen met hoge discipline (>95%) zoals PVV en SGP stemmen als een blok, wat " + "wijst op sterke partijdiscipline en homogene membership. Lagere discipline (<85%) " + "bij partijen als PvdA of SP kan duiden op interne factiestrijd, gewetensvragen " + "bij ethische thema's, of een brede ideologische koers die ruimte laat voor " + "afwijkende meningen. De discipline varieert ook per onderwerp โ€” ethische kwesties " + "tonen vaak meer interne verschillen dan economische thema's." ) - if _has_motion_data: - with st.expander("๐Ÿ” Wat bepaalt deze assen?"): - x_conf_pct = ( - f" (vertrouwen: {x_conf:.0%})" if x_conf is not None else "" - ) - y_conf_pct = ( - f" (vertrouwen: {y_conf:.0%})" if y_conf is not None else "" - ) - - _render_axis_motions(f"Horizontale as: {_x_label}", x_conf_pct, x_top) - _render_axis_motions(f"Verticale as: {_y_label}", y_conf_pct, y_top) - - if evr0 is not None: - st.caption( - f"De sterkste component verklaart {evr0:.1%} van de variantie in stemgedrag." - ) - - # Voting discipline analysis - st.markdown("---") - st.markdown( - "**Stemdiscipline analyse:** De Rice-index meet hoe eensgezind partijen stemmen " - "tijdens hoofdelijke stemmingen. Een score van 100% betekent dat alle MPs van " - "een partij hetzelfde stemden; 50% wijst op een gelijke splitsing binnen de partij. " - "Partijen met hoge discipline (>95%) zoals PVV en SGP stemmen als een blok, wat " - "wijst op sterke partijdiscipline en homogene membership. Lagere discipline (<85%) " - "bij partijen als PvdA of SP kan duiden op interne factiestrijd, gewetensvragen " - "bij ethische thema's, of een brede ideologische koers die ruimte laat voor " - "afwijkende meningen. De discipline varieert ook per onderwerp โ€” ethische kwesties " - "tonen vaak meer interne verschillen dan economische thema's." - ) # ---------------------------------------------------------------------------