matplotlib – Python 2D plotting library

matplotlib is a pure Python 2D plotting library designed to bring publication quality plotting to Python with a syntax familiar to MATLAB users. All of the plotting commands in the pylab interface can be accessed either via a functional interface familiar to MATLAB users or an object oriented interface familiar to Python users.

The library uses numpy for handling large data sets and supports a variety of output backends including GTK GTKAgg, GTKCairo, FltkAgg, QtAgg, TkAgg and WXAgg.

matplotlib is designed with the philosophy that you should be able to create simple plots with just a few commands, or even just one. It was originally conceived with MatLab’s users in mind. It’s the oldest plotting library but is still under active development.

Features include:

  • Extremely powerful – matplotlib can create almost any visualization.
  • Generate:
    • Plots;
    • Histograms;
    • Power spectra;
    • Bar charts;
    • Error charts;
    • Scatter plots and more.
  • Designed to be usable as MATLAB.
  • Object-oriented API for embedding plots into applications.
  • Procedural “pylab” interface based on a state machine.
  • Based on Python, a full-featured modern object-oriented programming language suitable for large-scale software development.
  • Numerous rendering backends: GTK, GTKAgg, GTKCairo, GTK3Agg, GTK3Cairo, MacOSX, nbAgg, Qt4Agg, Qt4Cairo, Qt5Agg, Qt5Cairo, TkAgg, TkCairo, WebAgg, WX, WXAgg, WXCairo, agg, cairo, gdk, pdf, pgf, ps, svg, template
  • Suitable for fast scripting, including CGI scripts.
  • Free, open source, no license servers.
  • Native SVG support.
  • Well-tested tool with mature code.
  • Rich ecosystem of Python tools are built around matplotlib.
  • Support for Python 3 (support for Python 2 was dropped).

If you are looking to create web/interactive graphs, I’d recommend one of the other Python visualization packages.

Support: Documentation, GitHub
Developer: Michael Droettboom and many contributors (project started by the late John Hunter)
License: Based on the PSF license. Matplotlib only uses BSD compatible code.


matplotlib is written in Python. Learn Python with our recommended free books and free tutorials.

Return to Plotting Tools Home Page | Return to Python Visualization Packages Home Page

Read our complete collection of recommended free and open source software. The collection covers all categories of software.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.