Figure: matplotlib logo

Matplotlib aims to enable users to create customizable visualizations through own components or third parties, all in a few lines of Python code.

Matplotlib was created by John Hunter in 2002, intitially to show figures like MatLab could. The public started recognizing this package as the go-to package because it was also used by the Space Telescope Science Institute, and thereby gained more popularity 1.

Currently, Matplotlib is used for the following high-level cases:

  • To preview figures in a Jupyter notebook
  • To save figures locally as images at publication-like quality
  • To dynamically render figures serverside

  1. VanderPlas, J. (2013, 23 maart). Matplotlib and the Future of Visualization in Python. Pythonic Perambulations. ↩︎


Katriel Ester Amanda

Data Science and Technology Master's student at TU Delft.

Mihai Anton

Data Science Master's student @TU Delft. Splitting between Machine Learning and Software Engineering.

Thomas van Tussenbroek

After graduating from the BSc Computer Science at TU Delft last year, I started my Master's programme this year in the same field.

Mick Koertshuis

Embedded Systems Master's student at the TUDelft with a specialisation in Software and Networking.

Matplotlib - From 0.63.0 to 3.4.0

In earlier essays, we have discussed matplotlib’s product vision, architecture, and quality and evolution 1 2 3. In this essay, we will focus on the variability features of matplotlib. Matplotlib is an open-source graphics package for python so all features are essentially available for every user without a need to select them from a distributor or something. It is however up to the user to customize the software to their demands.

Matplotlib - Quality and Evolution

The overall software quality of matplotlib Having a general software quality process means that all contributing parties understand the requirements and the project’s contribution guidelines. Matplotlib ensures this by providing an elaborat developer’s guide, even detailing to people who have never used it how to use git, which potentially helps non-tech-savy maths people who are interested in contributing. These guidelines ensure that contributions are consistent. First and foremost, the guide explains what kind of contributions can be made and what the coding guidelines are.

matplotlib - From Vision to Architecture

From one liner figures to full customizabilty Matplotlib is a standalone visualization component, used by users in different contexts, for different use-cases, within the Python environment. It offers multiple levels of abstraction and customization, having a layered architecture, with 3 main building blocks: scripting, artist, and backend. 1 Figure: Matplotlib’s layered architecture Now, let’s zoom in each one. Scripting - mimics MATLAB’s interface In our first essay we emphasized that the “why” behind matplotlib was to replicate the ease of use of MATLAB.

Matplotlib - Product Vision & Problem Analysis

As data scientists, we handle large amounts of data, intending to present it, analyze hypotheses, or exploring unknown information. Since data visualization is just a stepping stone for deeper analysis, we need tools that offer this layer in a flexible and easy to use manner. Matplotlib aims to enable users to create customizable visualizations through various components or third-party tools, at high resolution, with publication quality, all in a few lines of Python code.