Matplotlib
{{#invoke:Infobox|infobox}} Matplotlib 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.[1] SciPy makes use of Matplotlib.
Matplotlib was originally written by John D. Hunter, has an active development community,[2] 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,[3] and further joined by Thomas Caswell.[4][5]
Template:As of, matplotlib 2.0.x supports Python versions 2.7 through 3.6. Python3 support started with Matplotlib 1.2. Matplotlib 1.4 is the last version to support Python 2.6.[6]
Matplotlib has pledged to not support Python 2 past 2020 by signing the Python 3 Statement.[7]
- Your First Machine Learning Project in Python Step-By-Step
https://machinelearningmastery.com/machine-learning-in-python-step-by-step/
- Machine Learning Mastery With Python
https://machinelearningmastery.com/machine-learning-with-python/
Comparison with MATLAB
Pyplot is a Matplotlib module which 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.
Examples
Line plot
<source lang="numpy"> >>> import matplotlib.pyplot as plt >>> import numpy as np >>> a = np.linspace(0, 10, 100) >>> b = np.exp(-a) >>> plt.plot(a, b) >>> plt.show() </source> Template:Clear Histogram
<source lang="numpy"> >>> import matplotlib.pyplot as plt >>> from numpy.random import normal,rand >>> x = normal(size=200) >>> plt.hist(x, bins=30) >>> plt.show() </source> Template:Clear Scatter plot
<source lang="numpy"> >>> import matplotlib.pyplot as plt >>> from numpy.random import rand >>> a = rand(100) >>> b = rand(100) >>> plt.scatter(a, b) >>> plt.show() </source> Template:Clear 3D plot
<source lang="numpy"> >>> from matplotlib import cm >>> from mpl_toolkits.mplot3d import Axes3D >>> import matplotlib.pyplot as plt >>> import numpy as np >>> fig = plt.figure() >>> ax = fig.gca(projection='3d') >>> X = np.arange(-5, 5, 0.25) >>> Y = np.arange(-5, 5, 0.25) >>> X, Y = np.meshgrid(X, Y) >>> R = np.sqrt(X**2 + Y**2) >>> Z = np.sin(R) >>> surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm) >>> plt.show() </source> More examples
- Mpl example qbo.svg
Image plot
- Mpl example Helmoltz coils.svg
Contour plot
- Weight Growth of RN First Rate Line-of-Battle Ships 1630-1875.svg
Scatter plot
- Logarithmic Spiral Pylab.svg
Polar plot
- Temp-sunspot-co2.svg
Line plot
- Mpl example Rosenbrock function.svg
3-D plot
- Mandelbrot set, plotted with Matplotlib.svg
Image plot
A large list of example plot with their source code can be found on the Matplotlib Gallery.
Toolkits
Several toolkits are available which extend Matplotlib functionality. Some are separate downloads, others ship with the Matplotlib source code but have external dependencies.[9]
- Basemap: map plotting with various map projections, coastlines, and political boundaries[10]
- Cartopy: a mapping library featuring object-oriented map projection definitions, and arbitrary point, line, polygon and image transformation capabilities.[11] (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.
- matplotlib2tikz: export to Pgfplots for smooth integration into LaTeX documents[12]
Related projects
- Biggles[13]
- Chaco[14]
- DISLIN
- GNU Octave
- Gnuplot-py[15]
- PLplot – Python bindings available
PyCha
[16] – libcairo implementationPyPlotter
[17] – compatible with Jython- SageMath – uses
Matplotlib
to draw plots - SciPy (modules
plt
andgplt
) - wxPython (module
wx.lib.plot.py
) - Plotly – for interactive, online Matplotlib and Python graphs
- Bokeh[18] – Python interactive visualization library that targets modern web browsers for presentation
See also
References
| references-column-width | references-column-count references-column-count-{{#if:1|2}} }} | {{#if: | references-column-width }} }}" style="{{#if: 2 | {{#iferror: {{#ifexpr: 2 > 1 }} | Template:Column-width | Template:Column-count }} | {{#if: | Template:Column-width }} }} list-style-type: {{#switch: | upper-alpha | upper-roman | lower-alpha | lower-greek | lower-roman = {{{group}}} | #default = decimal}};">
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite news
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Template:Cite web
- ↑ Matplotlib – Introduction
- ↑ 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:Cite web