The ODDness of Matplotlib

Authors

Hannah Rachel Aizenman (The Graduate Center, CUNY), Elliott Sales de Andrade (Matplotlib), Kyle Sunden (Matplotlib)

Abstract

Matplotlib was designed with the option driven design (ODD) goal of providing a high degree of customization and defaults that are appropriate for many different use cases. To achieve a balance of configurability and maintainability, Matplotlib has a modular architecture where visual information is encapsulated in the artist objects and output is managed by independent backends. This architecture makes it feasible to implement more accessible options in the library and expose more information about the visualization to downstream accessibility tools, but the Matplotlib maintainers lack the expertise in accessibility to gauge what would be useful to implement internally and what information would be useful to expose through a public API.