diff --git a/scripts/plot_steer_showcase.py b/scripts/plot_steer_showcase.py index 71eb45f..ff19063 100644 --- a/scripts/plot_steer_showcase.py +++ b/scripts/plot_steer_showcase.py @@ -210,15 +210,18 @@ def plot_ordinal(run_dir: Path, out: Path, name: str, vec_label: str, C: float, plt.close(figm) # Alternative NAMED-AXIS value map (interpretable poles, no compass/minimap): project the - # societies + the AI base/steered points onto the instrument's two named value axes. + # societies + the AI base/steered points onto the instrument's two named value axes, and draw the + # steer as a CONNECTED base->+c/-c path (same visual language as the ipsative map's trajectory). from tinymfv.value_axes import VALUE_AXES, value_coords, axis_score if name in VALUE_AXES: Pval, poles = value_coords(Mfrac, dims, name) (_, _, xa), (_, _, ya) = VALUE_AXES[name] - ai = {lab: (axis_score(_frac(v, instr.scale_max), dims, xa), - axis_score(_frac(v, instr.scale_max), dims, ya)) - for lab, v in zip(labels, (base, pos, neg))} - figv = T.maps.plot_value_map(instr.display, countries, Pval, poles, models=ai, emphasize=emph, + def _vscore(v): + fv = _frac(v, instr.scale_max) + return axis_score(fv, dims, xa), axis_score(fv, dims, ya) + steer = {k: (*_vscore(v), lab) for k, v, lab in + [("base", base, labels[0]), ("pos", pos, labels[1]), ("neg", neg, labels[2])]} + figv = T.maps.plot_value_map(instr.display, countries, Pval, poles, steer=steer, emphasize=emph, title=f"{instr.display}: value map, LLM steered for {vec_label}") paths.append(T.maps.save_both(figv, out / name, "map_value")) plt.close(figv) @@ -242,7 +245,8 @@ def _zscore(v: np.ndarray) -> np.ndarray: def read_human_mfv() -> tuple[list[str], dict[str, dict[str, float]]]: """(countries, {country: {foundation: mean_1to5}}) from the bundled MFV human norms. - JimenezLeal2025 (LatAm) + Yamada2025 (MFV-J): 5 countries x 6 foundations (no Social Norms).""" + JimenezLeal2025 (LatAm) + Yamada2025 (MFV-J) + Hopp2024 (Dutch): 6 countries x 6 foundations + (no Social Norms).""" path = T.maps.DATA / "human" / "mfv_country_factors.csv" by_country: dict[str, dict[str, float]] = {} with open(path, newline="") as fh: diff --git a/src/tinymfv/data/human/mfv_country_factors.csv b/src/tinymfv/data/human/mfv_country_factors.csv index 474e611..efdc10e 100644 --- a/src/tinymfv/data/human/mfv_country_factors.csv +++ b/src/tinymfv/data/human/mfv_country_factors.csv @@ -29,3 +29,9 @@ Japan,fairness,3.818,0.531,564,0.0224,3.774,3.862,5,Yamada2025_MFV-J Japan,liberty,3.535,0.564,564,0.0237,3.488,3.581,5,Yamada2025_MFV-J Japan,loyalty,2.699,0.616,564,0.0259,2.648,2.749,5,Yamada2025_MFV-J Japan,sanctity,3.489,0.599,564,0.0252,3.44,3.539,5,Yamada2025_MFV-J +Netherlands,authority,2.89,0.92,269,0.0561,2.78,3.0,5,Hopp2024_DutchMFV +Netherlands,care,3.81,0.99,655,0.0387,3.73,3.89,5,Hopp2024_DutchMFV +Netherlands,fairness,3.72,0.91,318,0.051,3.62,3.82,5,Hopp2024_DutchMFV +Netherlands,liberty,3.94,0.89,304,0.051,3.84,4.04,5,Hopp2024_DutchMFV +Netherlands,loyalty,2.68,1.09,345,0.0587,2.57,2.8,5,Hopp2024_DutchMFV +Netherlands,sanctity,3.64,1.15,353,0.0612,3.52,3.76,5,Hopp2024_DutchMFV