Regen from quality 85. Addressed:
- Canvas drift: previous ggsize(1600, 900)/scale=3 rendered at 4800x2700,
outside the ±16px gate. Reset to canonical ggsize(800, 450)/scale=4 -> 3200x1800.
- Title missing the mandated language token; now "slope-basic · python ·
letsplot · anyplot.ai".
- Label crowding (VQ-02): re-spread Q1/Q4 values so both endpoints keep a
>=20-unit gap between adjacent entities instead of the previous ~10-unit
clusters.
- Endpoint labels were overlapping their point markers because hjust alone
doesn't create data-space clearance from a pixel-sized marker; added
nudge_x to push labels a real distance away from each point.
- Re-tuned theme/geom_text sizes to the canonical canvas per the library
prompt's sizing table (geom_text kept in the ~3-5mm annotation range
instead of reusing the theme's pt scale).
Kept unchanged: Okabe-Ito-style increase/decrease coloring via the Imprint
palette, top-3 mover emphasis (bold vs. dimmed segments), layer_tooltips()
interactivity, and the consumer-electronics data scenario.
Implementation:
slope-basic- python/letsplotImplements the python/letsplot version of
slope-basic.File:
plots/slope-basic/implementations/python/letsplot.pyParent Issue: #981
🤖 impl-generate workflow