Skip to content

GSoC 2023 Ideas

Kyle Sunden edited this page Feb 5, 2024 · 5 revisions

Matplotlib GSoC 2023 Ideas

Mentors

Project Ideas

Bivariate Colormaps

Project Length Intensity Category Involves
175 hours Low Fun/Peripheral Implementing support colormaps with two inputs

Sometimes there are additional pieces of information that we would like to be able to represent in plots.

In particular, this may include representing the phase and magnitude of an image with complex (a + bi) values (or any other similar pair of numbers).

Related Issues/Prs: #4369, #8738, #14168, #18809

Prerequisite Knowledge

  • Python programming

Expected outcomes

  • An implementation of a colormap which uses two values (or one complex value) to determine the output color.
  • This may take the form of an external library (especially in the initial stages) rather than being fully incorporated into matplotlib directly.

Improve Test Image Infrastructure

Project Length Intensity Category Involves
350 hours Moderate Infrastructure Development workflow improvements relating to test data (images)

The test images represent a large portion of the Matplotlib git repository (and especially make updating the images challenging/have increased long term cost, resulting in additional development effort being spent)

Related Issues/Prs: #5329, #16447, #11732, #17434, #17557

Prerequisite Knowledge

  • Python programming

Expected outcomes

  • An improved workflow for managing the test data infastructure/reducing repository growth due to image
  • Updates to developer documentation reflecting the changes
  • Updates to CI infrastructure reflecting the changes

Improved Custom Hatch Patterns

Project Length Intensity Category Involves
350 hours Moderate Fun/Peripheral Implementing support for custom Hatch patterns

Hatching adds patterns on top of patches used in Matplotlib Artists. These hatch patterns make things like bar graphs differentiable even when represented in Black and White or for colorblind readers.

Some fields additionally have standardized hatch patterns which are not available in Matplotlib by default.

Extending the current hatch patterns to allow registering custom hatch patterns would benefit users in such fields.

Related Issues/Prs: topic: hatch, particularly #20690, #20029

Prerequisite Knowledge

  • Python programming

Expected outcomes

  • A system for registering custom hatch patterns
  • An implementation (perhaps as an separate python package) of some domain specific hatch patterns

Improvements to MathTeX support

Project Length Intensity Category Involves
350 hours Moderate Core development Fixing bugs with Matplotlib's support for MathTeX

Representing text, and in particular mathematical expressions using LaTeX, are key parts of Matplotlib. This project is less about a single major contribution and more about smaller contributions which add up to much better support for MathTeX overall.

Prerequisite Knowledge

  • Python programming
  • LaTeX math mode expressions

Expected outcomes

  • Reduction in number of open issues(/PRs) relating to MathTeX

Related Issues/Prs: topic: text/mathtex