Projects page
List of self-contained, scoped projects that are suitable for funding through grants such as GSOC, GSOD, NUMFOCUS Small development grants, NASA ROSES, etc.
Documentation
Document exactly what our units system does now
- units and ducktyping of array types (pandas, xarray, etc)
- prose documentation
- test suite that can validate converter classes
Document out of the box interactivity
Features
Expand Hatch API
Patch API could be much more expansive and users should be able to make patch patterns
Question: Should this be "hatch" instead of "patch"? I think this should have been "hatch" [TAC]
Line-stroke or brush API
Sometimes we want more than just dots and dashes…
Alpha compositing
https://github.com/matplotlib/matplotlib/issues/6210
expanded annotation: Position artists relative to other artists
https://github.com/matplotlib/matplotlib/issues/22223
Improve non-linear grid lines
This is tied into astropy using contours https://github.com/astropy/astropy/pull/12447 / https://github.com/astropy/astropy/issues/12446 / https://github.com/matplotlib/matplotlib/issues/21569. There are similar hacks in metpy / cartopy for their map grid lines and skewT
Image resampling
-
we currently rely on Agg to do image interpolation and resampling. This has pretty signifcant limitations as Agg only works on numbers between 0 and 1.
- project would consider re-implemmenting the sampling in python (numpy or using other image manipulation libraries) and/or our own C code.
-
scope:
- well-defined as we have "working" implimentation to test against.
- could be partial (i.e. just impliment some of the more popular interpolation routines, and track to those when possible, and the old routines when not)
-
Add interpolation stage 'norm': https://github.com/matplotlib/matplotlib/issues/21167
Axes 3: decrease white space/clean up margins
https://github.com/matplotlib/matplotlib/issues/19519#issuecomment-780002963
mathtext overhaul
text/font handling
- Change postscript output to use the same mechanism as PDF and SVG, which
allows text to be editable after export.
- Related issues: #131, #11233
- Font fallback in matplotlib. Use css-font fallback ideology to let user
provide a list of (already-present) fonts (for non-shipped fonts, refer to 3rd idea),
and render text-first route instead of font-first route. (a bit of surgery req.)
- Related issues: #18883, #15260
- Font subsetting in matplotlib. Currently all the PDFs and SVGs generated embed the entire font within them, subsetting is a way to just embed the glyphs required from the font files.
- Related issues: #12636
Optimizations
Speed up the documentation build
Doc builds have become very slow, to an extent that negatively affects the workflow.
- When writing documentation, building locally to see what it looks like is basically impractical as you have to wait many minutes for the result. Even for incremental builds and using multiple CPUs.
- Doc builds are the slowest part in our CI pipeline, which slows down reviews and iterations.
In particular:
- Reduce the build time for clean builds.
- Reduce the build time for incremental builds.
Some time ago, that was ~30s for me, now it's ~500s. Try to get that down again.
- Add options for additional shortcuts, e.g. leaving out the gallery (we've documented
make O=-Dplot_gallery=0 html
but that doesn't have a significant impact)
This will improve the workflow for local building.
- This will likely need patches to
sphinx
, sphinx_gallery
, pydata_sphinx_theme
and may need coordination with them.
Test image refactor
Somehow don't have a huge repo full of images
Refactor dpi handling to be virtual until drawtime
MPL's base co-ordinate system should not be one that changes when the monitor a window is on changes.
External collabs
ipycanvas backend
https://github.com/jupyter-widgets-contrib/ipycanvas/issues/179
(TH) extensions on pytest-mpl