Generated by GPT-5-mini| Matplotlib (software) | |
|---|---|
![]() | |
| Name | Matplotlib |
| Caption | Example Matplotlib plot |
| Author | John D. Hunter |
| Developer | Matplotlib Development Team |
| Released | 2003 |
| Programming language | Python, C, C++ |
| Operating system | Cross-platform |
| License | PSF License |
Matplotlib (software) is an open-source plotting library for the Python (programming language) ecosystem, providing publication-quality two-dimensional graphics and basic three-dimensional plotting. Originating to fill visualization needs in scientific computing alongside NumPy, it became widely used in data analysis across institutions such as NASA, CERN, and universities including MIT, Stanford University, and University of California, Berkeley. Matplotlib integrates with interactive environments like Jupyter Notebook, IPython, and desktop applications built with Qt, GTK, or Tkinter.
Matplotlib was created in 2003 by John D. Hunter while working in domains linked to Neuroscience and Biomedical Engineering, inspired by the plotting capabilities of MATLAB and the needs of users in organizations such as Los Alamos National Laboratory. Early adoption intersected with projects at Space Telescope Science Institute and collaborations with contributors from Argonne National Laboratory. Over time stewardship moved into a community-led development model influenced by contributors affiliated with NumFOCUS, Python Software Foundation, and institutions like Lawrence Berkeley National Laboratory. Major milestones include adoption of object-oriented APIs in releases paralleling trends from Pandas and integration with backends used by Mathematica competitors.
Matplotlib provides a wide range of features used in workflows at Harvard University, Princeton University, Columbia University, and industry labs like Google and Microsoft Research. Core features include line plots, scatter plots, bar charts, histograms, contour plots, and heatmaps employed in publications from Nature (journal), Science (journal), and Proceedings of the National Academy of Sciences. It supports vector graphics exports to formats used by Adobe Systems and TeX toolchains for inclusion in LaTeX documents, and interactive backends for integration with GTK+, Qt (software), and wxWidgets applications. Styling systems enable compatibility with visual standards from organizations such as IEEE and ACM.
The architecture separates a high-level pyplot interface modeled after MATLAB and a lower-level object-oriented API reflecting designs seen in libraries used at Los Alamos National Laboratory and Oak Ridge National Laboratory. Backend abstraction permits rendering via hybrid stacks involving Cairo (graphics) and native windowing systems on Microsoft Windows, macOS, and distributions of Linux. Internally Matplotlib interoperates with numeric arrays provided by NumPy and data structures from Pandas, and it leverages font handling influenced by FreeType and rasterization patterns familiar to developers from X.Org and Mesa 3D.
Users interact through the stateful pyplot interface for quick plotting or the explicit Figure and Axes classes for reproducible figures, a pattern mirrored in visualization tools from ggplot2 and Seaborn. The API supports customization of axes, ticks, legends, colormaps, and annotations, catering to workflows in domains such as Astrophysics at European Southern Observatory and Genomics labs at Broad Institute. Integration points include embedding plots in GUI frameworks like PyQt, serving visualizations via Flask (web framework) or Django, and driving batch rendering in continuous integration pipelines used by organizations like GitHub and Travis CI.
The project is maintained by a global community of contributors coordinated through platforms like GitHub and governance influenced by standards from NumFOCUS and the Python Software Foundation. Contributors have affiliations spanning University of Washington, University College London, ETH Zurich, Google, and IBM Research. Regular releases follow semantic versioning practices and use continuous testing infrastructure similar to systems at Continuous Integration providers and research software initiatives at National Institutes of Health. Documentation efforts parallel those of SciPy and scikit-learn and include tutorials used in workshops at conferences such as PyCon, SciPy Conference, and EuroPython.
Matplotlib became a de facto standard for scientific plotting in the Python (programming language) community, cited in academic publications from IEEE Xplore, arXiv, and institutional reports from NASA and NOAA. Its influence is seen in the design of higher-level libraries like Seaborn, Altair, and Plotly, and it has been used in education curricula at Carnegie Mellon University and University of Oxford. Reviews in technical outlets such as Stack Overflow threads and coverage by Wired (magazine) reflect its importance to data journalism teams at organizations like The New York Times and The Guardian.
Matplotlib sits in an ecosystem with NumPy, SciPy, Pandas, Seaborn, Bokeh (software), Plotly, and Altair (software), and integrates with interactive tools like Jupyter Notebook, JupyterLab, and IPython. It complements GUI toolkits including PyQt, Tkinter, and wxWidgets and forms part of analysis stacks used with services from Amazon Web Services, Google Cloud Platform, and Microsoft Azure. Training materials and examples are frequently published by organizations such as DataCamp, Coursera, and universities like University of Toronto.
Category:Data visualization software