# Matplotlib

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Matplotlib
> Markdown URL: https://mediated.wiki/source/Matplotlib.md
> Source: https://en.wikipedia.org/wiki/Matplotlib
> Source revision: 1355514507
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Library for creating visualizations in Python}}
{{Infobox software
| name = Matplotlib
| logo = {{Dark mode switch|300px|300px|logo}}
| screenshot = File:Mpl screenshot figures and code.png
| caption = Screenshot of Matplotlib plots and code
| collapsible = 
| author = [John D. Hunter](/source/John_D._Hunter)
| developer = Michael Droettboom, ''et al.''
| released = {{Start date and age|df=yes|2003}}<ref>{{cite web|url=https://matplotlib.org/users/license.html#copyright-policy | title=Copyright Policy}}</ref>
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest release date    = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest preview version = 
| latest preview date = 
| engine = [Cairo](/source/Cairo_(graphics)), [Anti-Grain Geometry](/source/Anti-Grain_Geometry)
| discontinued = 
| programming language = [Python](/source/Python_(programming_language))
| operating system = [Cross-platform](/source/Cross-platform)
| platform = 
| size = 
| language = 
| genre = [Plotting](/source/List_of_graphing_software)
| license = [https://matplotlib.org/users/license.html Matplotlib license]
| website = {{official url}}
}}
'''Matplotlib''' (portmanteau of [MATLAB](/source/MATLAB), plot, and library<ref>{{cite web | url=https://matplotlib.org/stable/project/history.html | title=History — Matplotlib 3.9.2 documentation }}</ref>) is a [plotting](/source/Plotter) [library](/source/Library_(computer_science)) for the [Python](/source/Python_(programming_language)) [programming language](/source/programming_language) and its [numerical mathematics](/source/Numerical_analysis) extension [NumPy](/source/NumPy). It provides an [object-oriented](/source/Object-oriented_programming) [API](/source/API) for embedding plots into applications using general-purpose [GUI toolkit](/source/GUI_toolkit)s like [Tkinter](/source/Tkinter), [wxPython](/source/wxPython), [Qt](/source/Qt_(software)), or [GTK](/source/GTK). There is also a [procedural](/source/Procedural_programming) "pylab" interface based on a [state machine](/source/state_machine) (like [OpenGL](/source/OpenGL)), designed to closely resemble that of [MATLAB](/source/MATLAB), though its use is discouraged.<ref>{{cite web|title=API Overview|url=https://matplotlib.org/stable/api/index.html#module-pylab|publisher=matplotlib.org}}</ref> [SciPy](/source/SciPy) makes use of Matplotlib.

Matplotlib was originally written by [John D. Hunter](/source/John_D._Hunter). Since then it has had an active development community<ref>{{cite web |url=https://matplotlib.org/users/github_stats.html |title=Matplotlib github stats |publisher=matplotlib.org }}</ref> and is distributed under a [BSD-style license](/source/BSD_licenses). Michael Droettboom was nominated as Matplotlib's lead developer shortly before John Hunter's death in August 2012<ref>{{cite web |url=http://matplotlib.1069221.n5.nabble.com/ANN-Michael-Droettboom-matplotlib-lead-developer-td5037.html |title=Announcing Michael Droettboom as the lead Matplotlib developer |publisher=matplotlib.org |access-date=2013-04-24 |archive-date=2020-10-27 |archive-url=https://web.archive.org/web/20201027122844/http://matplotlib.1069221.n5.nabble.com/ANN-Michael-Droettboom-matplotlib-lead-developer-td5037.html |url-status=dead }}</ref> and was further joined by Thomas Caswell.<ref>{{Cite news|url=https://www.numfocus.org/blog/matplotlib-lead-developer-explains-why-he-cant-fix-the-docs-but-you-can|title=Matplotlib Lead Developer Explains Why He Can't Fix the Docs—But You Can – NumFOCUS|date=2017-10-05|work=NumFOCUS|access-date=2018-04-11|language=en-US}}</ref><ref>{{Cite web|url=https://matplotlib.org/users/credits.html|title=Credits – Matplotlib 2.2.2 documentation|website=matplotlib.org|access-date=2018-04-11}}</ref> Matplotlib is a NumFOCUS fiscally sponsored project.<ref>{{cite web|title=NumFOCUS Sponsored Projects|url=https://numfocus.org/sponsored-projects|publisher=NumFOCUS|access-date=2021-10-25}}</ref>

== Usage ==

Matplotlib is used in scientific research as a tool for data visualization. For example, the [Event Horizon Telescope](/source/Event_Horizon_Telescope) collaboration used Matplotlib to produce visualizations during the effort to create the first image of a black hole.<ref name="NumPyBlackHole">{{cite web |title=Case Study: First Image of a Black Hole |url=https://numpy.org/case-studies/blackhole-image/ |website=NumPy |access-date=22 April 2025}}</ref> Matplotlib also underpins the plotting functionality of many scientific [Python](/source/Python_(programming_language)) libraries (for instance, [pandas](/source/pandas_(software)) uses Matplotlib as its default backend for plotting). Its importance to the scientific community has been acknowledged by institutions such as [NASA](/source/NASA), which in 2024 awarded a grant to support Matplotlib’s continued development as part of an initiative to fund widely used open-source scientific software.<ref name="NASAOpenSource">{{cite web |title=NASA Funds Open-Source Software Underpinning Scientific Innovation |url=https://www.nasa.gov/news-release/nasa-funds-open-source-software-underpinning-scientific-innovation/ |website=NASA |access-date=22 April 2025}}</ref>

thumb|258x258px|A scatter plot created in Jupyter Notebook using Matplotlib

In education and data science, Matplotlib is frequently used to teach programming and data visualization. It integrates with [Jupyter Notebook](/source/Jupyter_Notebook), allowing students and instructors to generate inline plots and interactively explore data within a notebook environment.<ref name="JupyterNature">{{cite news |title=Interactive notebooks: Sharing the code |url=https://www.nature.com/articles/d41586-018-07196-1 |work=Nature |date=18 September 2018 |access-date=22 April 2025}}</ref> Many educational institutions incorporate Matplotlib into their curricula for teaching STEM concepts,<ref name="MatplotlibTutorial">{{cite web |title=Pyplot tutorial |url=https://matplotlib.org/stable/tutorials/introductory/pyplot.html |website=Matplotlib |access-date=22 April 2025}}</ref> and it is widely featured in tutorials, workshops, and open online courses as a primary plotting library.

==Related projects==
* [DISLIN](/source/DISLIN)
* [GNU Octave](/source/GNU_Octave)
* [Plotly](/source/Plotly) – for interactive, online Matplotlib and Python graphs
* [PLplot](/source/PLplot) – Python bindings available
* [SageMath](/source/SageMath) – uses <code>Matplotlib</code> to draw plots

==See also==
* [List of open-source mathematical libraries](/source/List_of_free_and_open-source_software_packages)

==References==
{{Reflist|2}}

==External links==
{{Commons category|Matplotlib}}
* {{Official website|https://matplotlib.org}}

{{SciPy ecosystem}}

Category:Articles with example Python (programming language) code
Category:Free plotting software
Category:Free software programmed in Python
Category:Python (programming language) scientific libraries
Category:Science software that uses GTK
Category:Science software that uses Qt
Category:Free data and information visualization software

---
Adapted from the Wikipedia article [Matplotlib](https://en.wikipedia.org/wiki/Matplotlib) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Matplotlib?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
