diff --git a/explorer.py b/explorer.py index 4348ea7..399e35d 100644 --- a/explorer.py +++ b/explorer.py @@ -2877,6 +2877,19 @@ def build_svd_components_tab(db_path: str) -> None: {p: len(v) for p, v in party_mp_vectors.items()} if party_mp_vectors else {} ) + # Auto-compute flip directions for all components based on party centroids + # This ensures right-wing parties consistently appear on the right side + try: + from analysis.svd_labels import compute_flip_direction + + for comp in range(1, 11): + flip = compute_flip_direction(comp, party_scores) + if comp in SVD_THEMES: + SVD_THEMES[comp]["flip"] = flip + except Exception: + # If flip computation fails, keep existing flip values in SVD_THEMES + pass + # Convert party_scores (possibly [x,y] lists or legacy vectors) into explicit (x,y) coords party_coords: dict = {} for p, v in party_scores.items():