matplotlib: plotting with Python
Failed to load latest commit information.
.circleci Use np.hypot whereever possible. Oct 6, 2018
.github BLD: update PR template for flake8 Aug 22, 2018
LICENSE MNT/DOC: whitespace + updated example heading Aug 13, 2017
ci Simplify travis setup a bit. May 7, 2018
doc Merge pull request #12565 from anntzer/score_weight Nov 11, 2018
examples Use level kwargs in irregular contour example Nov 9, 2018
extern Backport PR #12548: undef _XOPEN_SOURCE breaks the build in AIX Oct 24, 2018
lib Fix TypeError when calculating tick_values (#12809) Nov 15, 2018
requirements/testing Merge remote-tracking branch 'origin/v3.0.x' Nov 10, 2018
src Comment out PYOSINPUTHOOK_REPETITIVE Oct 25, 2018
tools Make pyplot more tolerant wrt. 3rd-party subclasses. Oct 6, 2018
tutorials Merge pull request #12598 from anntzer/cn Nov 5, 2018
.appveyor.yml CI: Added Appveyor Python 3.7 build (#12385) Oct 3, 2018
.coveragerc Add branch coverage; exclude from coverage. Feb 21, 2017
.flake8 MNT: merge ignore lines in .flake8 Nov 4, 2018
.gitattributes Mark svg files as binary/generated in gitattributes. Sep 22, 2017
.gitignore Minor fixes to docs and gitignore. Aug 27, 2018
.lgtm.yml Exclude examples from lgtm analysis Sep 20, 2018
.mailmap Update credits.rst Jun 9, 2018
.meeseeksdev.yml Give Carreau the ability to mention the backport bot. Sep 21, 2018
.travis.yml Backport PR #12708: Run flake8 in a separate travis environment Nov 5, 2018
INSTALL.rst gs9 everywhere Sep 27, 2018 Remove non-existant files from MANIFEST.IN May 31, 2018
README.rst DOC: Add badge and link to making PR tutorial Nov 1, 2018
azure-pipelines.yml Backport PR #12617: Set up CI with Azure Pipelines Nov 2, 2018
build_alllocal.cmd DOC: Remove pytz from documentation Jul 8, 2018
doc-requirements.txt Backport PR #11667: DOC: update doc requirement (#12647) Oct 27, 2018
matplotlibrc.template Allow "real" LaTeX code for pgf.preamble in matplotlibrc (#12674) Nov 11, 2018
pytest.ini TST: Run flake8 outside of pytest. Jul 8, 2018
setup.cfg.template Always install mpl_toolkits. Sep 28, 2018 Always install mpl_toolkits. Sep 28, 2018 Replaced warnings.warn with either logging.warnings or cbook._warn_ex… Oct 29, 2018 Use raw strings to avoid invalid escape sequences. Jul 7, 2018
tox.ini CI: Add separate test environment for pytz Jul 8, 2018 Fix some more invalid string escapes. Jul 16, 2018


Travis AppVeyor Codecov LGTM PyPi Gitter NUMFocus GitTutorial


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 shell (à la MATLAB or Mathematica), web application servers, and various graphical user interface toolkits.

NOTE: The current master branch is now Python 3 only. Python 2 support is being dropped.

Home page


For installation instructions and requirements, see the INSTALL.rst file or the install documentation. If you think you may want to contribute to matplotlib, check out the guide to working with the source code.


After installation, you can launch the test suite:


Or from the Python interpreter:

import matplotlib

Consider reading for more information. Note that the test suite requires pytest. Please install with pip or your package manager of choice.


matplotlib's communication channels include active mailing lists:

The first is a good starting point for general questions and discussions.

Gitter is for coordinating development and asking questions directly related to contributing to matplotlib.


You've discovered a bug or something else you want to change - excellent!

You've worked out a way to fix it – even better!

You want to tell us about it – best of all!

Start at the contributing guide!

Developer notes are now at Developer Discussions (Note: For technical reasons, this is currently only accessible for matplotlib developers.)