mirror of
https://github.com/wassname/moral-maps.git
synced 2026-09-09 11:27:22 +08:00
maps: foundation SPLOM + minimap, crop synthetic-haze maps to societies+steer
- plot_splom: KxK pairs-plot (mfq2 real joint only -- others ship independent- marginal haze that would fabricate off-diagonal correlation). lower=joint scatter w/ AI base->steer trajectory, diag=marginal+AI rules, upper=Pearson r sized by |r|. Ordered by PC1 loading so binding (authority/loyalty) cluster. full + AI-zoom (macro/micro). NaN-safe at collapsed poles. - ipsative map: synthetic haze is far wider than the societies, so it now crops to societies+steer (haze clips) and adds a 'full space' minimap with a viewport rectangle -- readable big5/16pf/humor maps with macro context kept. - compass labels via textalloc (was overlapping); NaN-safe crop. Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
@@ -135,6 +135,16 @@ def plot_ordinal(run_dir: Path, out: Path, name: str, vec_label: str, C: float)
|
||||
paths = [T.maps.save_both(figm, out / name, "map_pca_ipsative")]
|
||||
plt.close(figm)
|
||||
|
||||
# SPLOM only for mfq2: real per-respondent joint (others ship independent-marginal haze, whose
|
||||
# off-diagonals would fabricate the correlation structure). Full + AI-zoom (macro + micro).
|
||||
if name == "mfq2":
|
||||
proffrac = {c: _frac(prof_c[c], instr.scale_max) for c in cs}
|
||||
for zoom, tag in [(False, "splom"), (True, "splom_zoom")]:
|
||||
figs = T.maps.plot_splom(instr, dims, respondents, Mfrac, _frac(base, instr.scale_max),
|
||||
proffrac, zoom=zoom, vec_label=vec_label)
|
||||
paths.append(T.maps.save_both(figs, out / name, tag))
|
||||
plt.close(figs)
|
||||
|
||||
figr = T.maps.plot_range(instr, dims, cs, prof, humans, None, vec_label)
|
||||
paths.append(T.maps.save_both(figr, out / name, "range"))
|
||||
plt.close(figr)
|
||||
|
||||
Reference in New Issue
Block a user