Matplotlib Explained

Matplotlib
Logo Size:300px
Author:John D. Hunter
Developer:Michael Droettboom, et al.
Released:[1]
Engine:Cairo, Anti-Grain Geometry
Programming Language:Python
Operating System:Cross-platform
Genre:Plotting
License:Matplotlib license

Matplotlib (portmanteau of MATLAB, plot, and library[2]) is a plotting library for the Python programming language and its numerical mathematics extension NumPy. It provides an object-oriented API for embedding plots into applications using general-purpose GUI toolkits like Tkinter, wxPython, Qt, or GTK. There is also a procedural "pylab" interface based on a state machine (like OpenGL), designed to closely resemble that of MATLAB, though its use is discouraged.[3] SciPy makes use of Matplotlib.

Matplotlib was originally written by John D. Hunter. Since then it has had an active development community[4] and is distributed under a BSD-style license. Michael Droettboom was nominated as matplotlib's lead developer shortly before John Hunter's death in August 2012[5] and was further joined by Thomas Caswell.[6] [7] Matplotlib is a NumFOCUS fiscally sponsored project.[8]

Comparison with MATLAB

Pyplot is a Matplotlib module that provides a MATLAB-like interface.[9] Matplotlib is designed to be as usable as MATLAB, with the ability to use Python, and the advantage of being free and open-source.

Plot Types

Matplotlib supports various types of 2 dimensional and 3 dimensional plots. The support for two dimensional plots is robust. The support for three dimensional plots was added later and while it is good, it is not as robust as 2 dimensional plots.

Examples

Animations

Matplotlib-animation[10] capabilities are intended for visualizing how certain data changes. However, one can use the functionality in any way required.

These animations are defined as a function of frame number (or time). In other words, one defines a function that takes a frame number as input and defines/updates the matplotlib-figure based on it.

The time at the beginning of a frame-number since the start of animation can be calculated as -

time=

frame-number-1
FPS

Toolkits

Several toolkits are available which extend Matplotlib functionality. Some are separate downloads, others ship with the Matplotlib source code but have external dependencies.[11]

map plotting with various map projections, coastlines, and political boundaries[12]

Related projects

Notes and References

  1. Web site: Copyright Policy.
  2. Web site: History — Matplotlib 3.9.2 documentation .
  3. Web site: API Overview. matplotlib.org.
  4. Web site: Matplotlib github stats . matplotlib.org .
  5. Web site: Announcing Michael Droettboom as the lead Matplotlib developer . matplotlib.org . 2013-04-24 . 2020-10-27 . https://web.archive.org/web/20201027122844/http://matplotlib.1069221.n5.nabble.com/ANN-Michael-Droettboom-matplotlib-lead-developer-td5037.html . dead .
  6. News: Matplotlib Lead Developer Explains Why He Can't Fix the Docs—But You Can – NumFOCUS. 2017-10-05. NumFOCUS. 2018-04-11. en-US.
  7. Web site: Credits – Matplotlib 2.2.2 documentation. matplotlib.org. 2018-04-11.
  8. Web site: NumFOCUS Sponsored Projects. NumFOCUS. 2021-10-25.
  9. Web site: Matplotlib: Python plotting — Matplotlib 3.2.0 documentation. matplotlib.org. 2020-03-14.
  10. Web site: Animations using Matplotlib. matplotlib.org. 30 Aug 2024.
  11. Web site: Toolkits . matplotlib.org.
  12. Web site: Whitaker. Jeffrey. The Matplotlib Basemap Toolkit User's Guide (v. 1.0.5). Matplotlib Basemap Toolkit documentation. 24 April 2013.
  13. Web site: Elson. Philip. Cartopy. 24 April 2013.
  14. Web site: Schlömer. Nico. tikzplotlib. GitHub. 7 November 2016.
  15. Web site: GeoPandas 0.14.4 — GeoPandas 0.14.4+0.g60c9773.dirty documentation . 2024-04-29 . geopandas.org.
  16. Web site: Using cartopy with matplotlib — cartopy 0.15.0 documentation . 2024-04-30 . scitools.org.uk.
  17. Web site: Bigglessimple, elegant python plotting . biggles.sourceforge.net . 24 November 2010.
  18. Web site: Chaco . code.enthought.com.
  19. Web site: Gnuplot.py on . gnuplot-py.sourceforge.net . 24 November 2010.
  20. Web site: Bokeh 2.0.0 Documentation. docs.bokeh.org. 2020-03-14.