Matplotlib
Template:Short description Template:Infobox software Matplotlib (portmanteau of MATLAB, plot, and library[1]) 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.[2] SciPy makes use of Matplotlib.
Matplotlib was originally written by John D. Hunter. Since then it has had an active development community[3] 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[4] and was further joined by Thomas Caswell.[5][6] Matplotlib is a NumFOCUS fiscally sponsored project.[7]
Comparison with MATLAB
Pyplot is a Matplotlib module that provides a MATLAB-like interface.[8] 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
-
Line plot
-
Histogram
-
Scatter plot
-
3D plot
-
Image plot
-
Contour plot
-
Polar plot
-
Line plot
-
3-D plot
-
Image plot
Animations
Matplotlib-animation[9] 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 -
Toolkits
Several toolkits are available which extend Matplotlib functionality. Some are separate downloads, others ship with the Matplotlib source code but have external dependencies.[10]
- Basemap: map plotting with various map projections, coastlines, and political boundaries[11]
- Cartopy: a mapping library featuring object-oriented map projection definitions, and arbitrary point, line, polygon and image transformation capabilities.[12] (Matplotlib v1.2 and above)
- Excel tools: utilities for exchanging data with Microsoft Excel
- GTK tools: interface to the GTK library
- Qt interface
- Mplot3d: 3-D plots
- Natgrid: interface to the natgrid library for gridding irregularly spaced data.
- tikzplotlib: export to Pgfplots for smooth integration into LaTeX documents (formerly known as matplotlib2tikz)[13]
- Seaborn: provides an API on top of Matplotlib that offers sane choices for plot style and color defaults, defines simple high-level functions for common statistical plot types, and integrates with the functionality provided by Pandas
- GeoPandas:[14] simplifies geospatial work in Python without needing a spatial database like PostGIS[15]
- Cartopy: streamlines map creation in matplotlib by enabling users to specify a projection and add coastlines with a single line of code[16]
Related projects
- Biggles[17]
- Chaco[18]
- DISLIN
- GNU Octave
- gnuplotlib – plotting for numpy with a gnuplot backend
- Gnuplot-py[19]
- PLplot – Python bindings available
- SageMath – uses
Matplotlibto draw plots - SciPy (modules
pltandgplt) - Plotly – for interactive, online Matplotlib and Python graphs
- Bokeh[20] – Python interactive visualization library that targets modern web browsers for presentation
References
External links
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite news
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Citation
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web