Skip to content

Matplotlib GSoC 2026 Ideas

hannah edited this page Feb 20, 2026 · 6 revisions

Mentors

Project Ideas

This is just a starting point. Your own ideas are most welcome. Please ask questions and post proposals on https://discourse.matplotlib.org/

Indirect Transforms

Project Length Intensity Category Involves
175-350 hours medium core development creating new transform and refactoring code to use it

This project involves factoring out the coordinate systems out of the Annotation API into a reusable positioning API. This would include factoring out Annotations support for relative positioning with respect to base artist into something like IndirectTransform(func: Callable[[], Transform]). This would include a lot of work to then thread the use of the function and transform back into the annotation API, plus new documentation and examples of using the new transform.

Related Issues/Prs: https://github.com/matplotlib/matplotlib/issues/22223#issuecomment-1011957191

Prerequisite Knowledge

Expected outcomes

  • new IndirectTransform transform + docs
  • new internal function handling the coordinates dispatching found in annotation
  • code refactor to make use of the API

Notes

This project can be a medium to large project depending on the scope of work in the API building on this new functionality.

"overlay" layer API for interactive backends

Project Length Intensity Category Involves
creating new API on the canvas

Responsive interaction with matplotlib figures is currently limited as any interactive element must be drawn as part of the figure, e.g. widgets.Cursor implements a cross hair cursor and requires expensive redraws of the figure. This project shall create an overlay layer that will be drawn on top of the figure image and can be redrawn independently based on user interaction. This layer will reside in the backend.

The result should be at least a fast crosshair cursor that follows the mouse and is propagated to shared Axes. Further ideas and extensions are welcome.

The project involves some fundamental architecture and API design. The overlay layer must maintain a simplified knowledge on the underlying figure (e.g. where are Axes located), it must store a logical representation of the overlayed elements in a backend-independent way and it must be able to render that information on top of the figure canvas.

Related Issues/Prs: #30515

Prerequisite Knowledge

  • Python programming
  • Experience with at least on GUI framework is beneficial

Expected outcomes

  • new crosshair tool in addition to Pan and Zoom.

Clone this wiki locally