TclError from TkAgg in headless CI: where should matplotlib's Agg backend be pinned?
Matplotlib's backend abstraction separates rendering from the output device: the Agg backend rasterizes to files without a display, while interactive backends such as TkAgg require a windowing system. In headless CI or Docker images, an auto-selected interactive backend is the documented trigger for a TclError at figure-render time, so a plotting module that