Matplotlib Overlay Layer API for Smooth Interactive Tools
I propose to implement the Overlay Layer API for Matplotlib’s interactive backends. Currently, tools like the Cursor widget force a full figure redraw on every mouse move, making even a simple crosshair feel laggy. This project introduces a canvas-owned Overlay Manager that stores lightweight, layered overlay primitives (lines, rectangles, etc.) with in-place update handles. Overlays will be drawn independently of the main figure using the fastest available path: native GUI painting (starting with QtAgg), a blit-based fallback when possible, or a lightweight full-redraw fallback otherwise. As the minimum deliverable, I will build a fast, smooth built-in Crosshair tool (integrated with ToolManager) that works correctly with shared Axes and becomes a standard interactive feature alongside Pan/Zoom.
Project details
Technologies
Not listed in the archive