-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Matplotlib GSoC 2026 Ideas
This is just a starting point. Your own ideas are most welcome. Please ask questions and post proposals on https://discourse.matplotlib.org/
| 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
- Python programming
- understanding of matplotlib's transform machinery
- new
IndirectTransformtransform + docs - new internal function handling the coordinates dispatching found in annotation
- code refactor to make use of the API
This project can be a medium to large project depending on the scope of work in the API building on this new functionality.
| 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
- Python programming
- Experience with at least on GUI framework is beneficial
- new crosshair tool in addition to Pan and Zoom.