mirror of
https://github.com/wassname/moral-maps.git
synced 2026-10-30 13:30:15 +08:00
maps: respondent-haze ipsative map + glossed axes (port from mft_honesty)
plot_ipsative_pca gains an optional respondents arg: when given it fits the ipsative PCA basis on the individual cloud (3902 Atari respondents) and scatters them behind the society dots, with an envelope-core crop, matching the mft_honesty fig_pca_ipsative the project standardized on. Axis labels carry a foundation-loading gloss. respondents=None keeps the old society-only behavior. Bundles atari_study2_raw.csv + a respondent_profiles loader (keying verbatim from Atari Code_Study2.R) so tinymfv owns the data, no mft_honesty dependency. plot_steer_showcase passes respondents for mfq2 only. Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
1 parent
9d3741fb45
commit
d20f717251
3 files changed
+3980
-7
No files matched your search
@@ -87,9 +87,12 @@ def plot_ordinal(run_dir: Path, out: Path, name: str, vec_label: str, C: float)
|
||||
|
||||
countries, Mfrac = human_matrix(instr)
|
||||
labels = (f"base (c=0)", f"+C={C:+.2f}", f"-C={-C:+.2f}")
|
||||
# mfq2 has per-respondent Atari data -> scatter the individual cloud behind the societies and
|
||||
# fit the ipsative PCA on PEOPLE (better-conditioned, the real envelope). Other instruments: None.
|
||||
respondents = T.maps.respondent_profiles(dims, instr.scale_max) if name == "mfq2" else None
|
||||
figm = T.maps.plot_ipsative_pca(instr, dims, countries, Mfrac,
|
||||
_frac(base, instr.scale_max), _frac(pos, instr.scale_max),
|
||||
_frac(neg, instr.scale_max), labels=labels)
|
||||
_frac(neg, instr.scale_max), respondents=respondents, labels=labels)
|
||||
paths = [T.maps.save_both(figm, out / name, "map_pca_ipsative")]
|
||||
plt.close(figm)
|
||||
|
||||
|
||||
Reference in new issue
Block a user