wvs_map: bake title + repo attribution inside the axes, add top headroom

Draw the title and github.com/wassname/moral-maps note in the empty bottom-left
INSIDE the axes so a crop can't strip attribution and there's no whitespace band.
Give the models overlay extra top headroom so the most-secular model stars and
their labels seat inside the frame instead of spilling above it. Regenerate PNG+SVG.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
wassname
2026-07-09 16:02:29 +08:00
co-authored by Claudypoo
parent 48dcec6300
commit cfd334512a
4 changed files with 12017 additions and 11038 deletions
+6 -2
View File
@@ -285,7 +285,9 @@ def main() -> None:
# Render through the SHARED value-map renderer (same one the instrument value maps use): pole
# signposts through the human median, 4 auto-selected zone hulls, auto-placed labels, model stars.
_, emph = zones_for(countries)
# Title + caption live in the README (nicer voice, editable), not baked into the figure.
# The hero map (unlike the instrument maps) bakes on a title + an attribution note carrying the
# repo URL, so copies shared around the web stay credited and self-explanatory. Everything else
# still leans on the README voice.
# Drop the " (rated)" readout tag from the on-map labels (the cache/CI-table keep it) -- the map is
# crowded and every model here is rated, so the tag adds nothing.
plot_models = {k.replace(" (rated)", ""): v for k, v in models.items()}
@@ -305,7 +307,9 @@ def main() -> None:
fig = maps.plot_value_map(
"WVS Inglehart-Welzel", countries, P,
("Survival", "Self-expression", "Traditional", "Secular-Rational"),
models=plot_models, model_labels=model_labels, emphasize=emph)
models=plot_models, model_labels=model_labels, emphasize=emph,
title="Frontier LLMs on the\nWorld Values Survey",
note="17 models, rated sampling\ngithub.com/wassname/moral-maps")
fig.savefig(args.out, dpi=200, bbox_inches="tight")
logger.info(f"wrote {args.out}")