# Matplotlib

## About Matplotlib

Matplotlib is an easy-to-use Python library for creating static, animate, and creative visualizations. It is an essential part of the Python data science stack and provides users with an object-oriented API to facilitate image manipulation and display.

As an open-source alternative to MATLAB, it can help scientists & data analysts turn data points into an interactive visualization. It can run from both the Python shell and plotting window pop-ups.

It supports a wide range of plots, including line plots, scatter plots, bar plots, histograms, 3D plots, and more. With Matplotlib, users can customize and control every plot aspect, including the colors, markers, labels, and legends. It is a powerful data visualization tool and can create professional-looking plots for presentations and publications.

## Matplotlib and NumPy

NumPy is an open-source Python library that supports large, multi-dimensional arrays and various mathematical functions. On the other hand, Matplotlib is a graphic extension to NumPy that takes advantage of the performance and memory management capabilities of NumPy, especially when working with large data sets.

For example, users can plot 2D or 3D functions containing 100+ elements in an array. To do this, you must first generate the independent values (x-axis) according to the number required of points and then numerically evaluate the function. Use NumPy to create the array with the data points for the x-axis and manipulate it according to the math operation. Finally, plot the resulting arrays.

import matplotlib.pyplot as plt import numpy as np xpoints = np.linspace(0, 1000,100) # 100 points from 0 to 1000. ypoints = xpoints**2 plt.plot(xpoints, ypoints) plt.show()

In summary, NumPy provides the data structure and mathematical functions for scientific computing, while Matplotlib provides visualization tools for creating plots and charts. Together form a powerful tool of data analysis and visualization in Python.

## Matplotlib vs. Seaborn

Seaborn is a Python library built over Matplotlib to make it easier to create attractive and informative visualizations. It contains several built-in themes and color palettes to create more polished and professional-looking plots.

Matplotlib and Seaborn have similar features, and users commonly employ them for different purposes. However, you can also harness the power of both libraries for data visualization by using them together. One everyday use case is to use Matplotlib to create the basic structure of a plot and then use Seaborn to add additional features.

## Quick Installation Guide

In this very short tutorial, you’ll learn how to install any Python library. Matplotlib is already installed in Jupyter Notebook. To verify and list all locally installed packages, use the following command:

pip list --format=columns

If the library is not already present in your Jupyter Notebook or any other shell environment, run “**!pip install library_name**” in a code cell or follow the appropriate installation procedure for the IDE you’re using.

!pip install matplotlib

When using CODA:

conda install matplotlib

Once you have installed it, employ the following command to import the library into your code:

import matplotlib.pyplot as plt

where **plt** is its standard alias. You can use others but remember that it is the most adopted and frequently seen in complex codes.

At this point, Matplotlib has provided you with two different ways or styles to generate new figures, each with its typing method.

- For the first one, called “Axes,” you must specify every step. In other words, begin your code with an instance for a figure class (
**.figure()**), employ the subplot module (**.subplot()**) to create Axes objects, and finally print the figure (**.plot()**).

import matplotlib.pyplot as plt Figure_1=plt.figure() # an empty figure with no Axes Axes_1=Figure_1.subplots() Axes_1.plot([-2, -1, 1, 2], [0, 1, 1, 0])

- The second and fast way to create a figure is through the
**pyplot**module (**plt.**). It is equivalent to the Axes method but simplifies the procedure mentioned above.

import matplotlib.pyplot as plt plt.plot([-2, -1, 1, 2], [0, 1, 1, 0])

## Highlights

### Project Background

- Project: Matplotlib
- Author: John D. Hunter .
- Initial Release: 2003.
- Type: Plotting.
- License: Python Software Foundation (PSF) license.
- Contains: 3D plotting tool mplot3d, axes helper axes_grid1, and axis helper axisartist .
- Language: Python.
- GitHub: matplotlib/matplotlib has 14.5k stars and 1106 contributors.
- Runs On: Windows, MacOS, and Linux.
- Twitter:/matplotlib/

### Main Features

- For MATLAB users, Matplotlib’s Pyplot module provides a very similar structure.
- It has multiple options for rendering backends.
- By using Pandas or Seaborn, the amount of code required is reduced.
- Plots have a minimalistic style, which is ideal for scientific publications.
- Users have more advanced customization tools at their disposal.
- Due to its long-standing existence, Matplotlib has amassed a significant user community

### Differentiates

- It offers high-quality and multiple formats.
- Controls numerous aspects of an image.
- Easy to work with, especially for MATLAB users.

### Projects and Libraries

- Seaborn: It makes it easier to create attractive and informative visualizations.
- Cartopy: It is a Python library for creating maps and other spatial visualizations.
- DNA Features Viewer: It was designed for visualizing genetic features in DNA sequences.
- Plotnine: It allows users to create complex visualizations by chaining together simple commands.
- WCSAxes: It is built on top of Matplotlib and Astropy and provides an easy-to-use interface for creating plots of astronomical data in a variety of coordinate systems.

### Community Benchmarks

- 16,700 Stars
- 6,700 Forks
- 1,246 Code contributors
- 69+ Releases
- Source: Matplotlib GitHub

### Releases

- v3.6.3 (1-2023): Bug-fixes and adjustments
- v3.6.0 (9-16-2022): Improvements, Figure and Axes creation / management, Plotting methods, Colors and colormaps, Titles, ticks, and labels, Legends, Markers, Fonts and Text.
- V3.5.0 (11-16-2021): Improvements,Figure and Axes creation / management, Plotting methods, Colors and colormaps, Titles, ticks, and labels, 3D Axes improvements.
- V3.4.0 (3-26-2021): Improvements, Figure and Axes creation / management, Plotting methods, Colors and colormaps, Sphinx extensions, 3D Axes improvements, Titles, ticks, and labels.

### Applications

- Data analysis and generating visual representations
- Generate plots, histograms, power spectra, bar charts, error charts, and other kinds of plots

## References

^{[1]} J. D. Hunter, “Matplotlib: A 2D Graphics Environment”, Computing in Science & Engineering, vol. 9, no. 3, pp. 90-95, 2007.^{[2]} Matplotlib – github, 2023. https://github.com/matplotlib/matplotlib