Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shells, the Jupyter notebook, web application servers, and four graphical user interface toolkits.
Matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc., with just a few lines of code. For examples, see the sample plots and thumbnail gallery.
For simple plotting the pyplot
module provides a MATLAB-like interface,
particularly when combined with IPython. For the power user, you have full
control of line styles, font properties, axes properties, etc, via an object
oriented interface or via a set of functions familiar to MATLAB users.
Visit the Matplotlib installation instructions.
To get started, read the User's Guide.
Trying to learn how to do a particular kind of plot? Check out the examples gallery or the list of plotting commands.
There are many external learning resources available including printed material, videos and tutorials.
Matplotlib is a welcoming, inclusive project, and we try to follow the Python Software Foundation Code of Conduct in everything we do.
Join our community at discourse.matplotlib.org to get help, discuss contributing & development, and share your work.
If you have questions, be sure to check the FAQ, the API docs. The full text search is a good way to discover the docs including the many examples.
Check out the Matplotlib tag on stackoverflow.
Short questions may be posted on the gitter channel.
To keep up to date with what's going on in Matplotlib, see the what's new page or browse the source code. Anything that could require changes to your existing code is logged in the API changes file.
Matplotlib is hosted on GitHub.
It is a good idea to ping us on Discourse as well.
Mailing lists
Matplotlib ships with several add-on toolkits,
including 3d plotting with mplot3d
, axes helpers in axes_grid1
and axis
helpers in axisartist
.
A large number of third party packages extend and build on Matplotlib functionality, including several higher-level plotting interfaces (seaborn, holoviews, ggplot, ...), and two projection and mapping toolkits (basemap and cartopy).
Matplotlib is the brainchild of John Hunter (1968-2012), who, along with its many contributors, have put an immeasurable amount of time and effort into producing a piece of software utilized by thousands of scientists worldwide.
If Matplotlib contributes to a project that leads to a scientific publication, please acknowledge this work by citing the project. A ready-made citation entry is available.
Please consider donating to the Matplotlib project through the Numfocus organization or to the John Hunter Technology Fellowship.
The Matplotlib license is based on the Python Software Foundation (PSF) license.
There is an active developer community and a long list of people who have made significant contributions.