In this Python tutorial, we will discuss the matplotlib library, What is matplotlib, How to use it and we shall also cover the following topics:
- What is matplotlib
- Features of matplotlib
- Matplotlib environment setup
- Importing matplotlib library
- Matplotlib pyplot API
- Types of plots in matplotlib
- Image functions in matplotlib
- Axis functions in matplotlib
- Figure functions in matplotlib
What is matplotlib
There are numerous libraries present in Python. And Matplotlib is one of the most successful and commonly used libraries, that provide various tools for data visualization in Python.
It is one of the most powerful plotting libraries in Python. It is a cross-platform library that provides various tools to create 2D plots from the data in lists or arrays in python.
It was created and coded by John D. Hunter in Python programming language in 2003. The current stable version of matplotlib is 3.4.2, that released on 8 May 2021. It makes use of NumPy, a library that provides the numerical mathematical extension for Python.
It also provides an object-oriented API that enables it, in extending the functionality to put the static plots in applications by using various Python GUI toolkits available (Tkinter, PyQt, etc).
It provides a user to visualize data using a variety of different types of plots to make data understandable. You can use, these different types of plots (scatterplots, histograms, bar charts, errorcharts, boxplots, etc.) by writing few lines of code in python.
You can use the matplotlib package in any Python shell, IPython shell, Jupyter notebook, jupyter lab, cloud (IBM Watson studio, Google collab, etc), and web application servers (flask, Django using pycharm or anaconda).
Read Matplotlib increase plot size
Features of matplotlib
- It is used as a data visualization library for the Python programming language.
- It provides quite the simplest and most common way to plot data in python.
- It provides such tools that can be used to create publication-standard plots and figures in variety of export formats and various environments (pycharm, jupyter notebook) across platforms.
- It provides a procedural interface called Pylab, which is used designed to make it work like MATLAB, a programming language used by scientists, researchers. MATLAB is a paid application software and not open source.
- It is similar to plotting in MATLAB, as it allows users to have a full control over fonts, lines, colors, styles, and axes properties like MATLAB.
- Matplotlib along with NumPy can be treated as the open source equivalent of MATLAB.
- It provides excellent way to produce quality static-visualizations that can be used for publications and professional presentations.
- It also provides compatibility with various of other third-party libraries and packages, that extend its functionality. For example, seaborn, ggplot that provide more features for plotting, and basemap and cartopy, that are used to plot geospatial data.
- Matplotlib is a cross-platform library that can be used in various python scripts, any python shell (available in IDLE, pycharm, etc) and IPython shells (cond, jupyter notebook), the web application servers (Django, flask), and various GUI toolkits (Tkinter, PyQt, WxPythonotTkinter).
- It is clear that, matplotlib with its various of compatible third-party libraries provide user the powerful tools to visualize a variety of data.
Read Matplotlib 1.3.1 requires nose which is not installed
Matplotlib environment setup
Matplotlib and its dependency packages are available in the form of wheel packages on the standard Python package repositories and you can install them easily on Windows, Linux, and macOS systems using the pip package manager, once you have installed the python in your system. You can do it so, by executing the following command:
pip3 install matplotlib
If the Python package is not installed for all users in your system then, you have to install Microsoft Visual C++ 2008 (64 bit or 32 bit for Python 2.7) or Microsoft Visual C++ 2010 (64 bit or 32 bit for Python 3.4).
- In windows, you can easily download and install the above dependency package from any browser.
- If you are using Python 2.7 on a MacOS then, execute the following command:
xcode-select –install
When the above command is executed, a dependency of the package, subprocess32 may be compiled.
- And if you are working on some old version of Linux with Python 2.7 installed in it, you have to install the master version of subprocess32.
The above steps for various OS, set the environment for the matplotlib package to be installed and used.
Read What is add_axes matplotlib
Importing matplotlib library
You can use matplotlib and utilize its functionalities in python by simply importing it into your environment (Jupiter notebook, google collab, IDLE, etc). The code to import matplotlib is as follows:
-- Importing the matplotlib library
import matplotlib
-- Importing the matplotlib library and alias it with a shorter name
import matplotlib as plt
In the above code, reference name (alias) can be any of your choices, but the most commonly used name is plt. So, we will also use it. A reference name gives a convenient and easy use of the library, you have to type less code to reference it in the further codes.
Two important things to remember, whenever you plot with matplotlib in python:
- Type of graph: Where you have to define the type of the plot, can be a bar chart, line chart, histogram, etc.
- And show the graph: Here, you will display the graph.
Read Matplotlib unknown projection ‘3d’
Matplotlib pyplot API
matplotlib.pyplot is a state-based interface to matplotlib. It is a collection of command-style functions that make matplotlib work like MATLAB. Each pyplot function makes some change to the plot (figure).
- A function can create a figure: matplotlib.pyplot.figure(), Another function that creates a plotting area in a figure: matplotlib.pyplot.plot().
- Plots some lines in a plotting area,
- Decorates the plot with labels, annotations, etc.
You can import the pyplot API in python by the following code:
import matplotlib.pyplot as plt
-- OR
from matplotlib import pyplot as plt
In the above code, the pyplot API from the matplotlib library is imported into the program and referenced as the plt. You can give any name, but plt is standard and most commonly used.
Read: Matplotlib 2d surface plot
Types of plots in matplotlib
There are a variety of plots available in matplotlib, the following are some most commonly used plots:
S.No. | Plot functions | Description |
---|---|---|
1 | plot() | You can plot markers and/or lines to the axes. |
2 | scatter() | It creates a scatter plot of x VS y. |
3 | bar() | It creates a bar plot. |
4 | barh() | It creates a horizontal bar plot. |
5 | hist() | It plots a histogram. |
6 | hist2d() | It creates a 2D histogram plot. |
7 | boxplot() | It creates a box-with-whisker plot. |
8 | pie() | It plots a pie chart. |
9 | stackplot() | It creates a stacked area plot. |
10 | polar() | It creates a polar plot. |
11 | stem() | It creates a stem plot. |
12 | step() | It creates a step plot. |
13 | quiver() | It plots a 2D field of arrows. |
Plots are a way to understand patterns, trends, and correlations of data provided. We can say that these are the tools to have an insight into some quantitative information.
Let’s see how to implement some of the basic plots mentioned above on some sample data, so open up jupyter notebook or any Ipython shell and let’s do some examples:
- Line plot:
# Importing the pyplot API from matplotlib library
from matplotlib import pyplot as plt
# x-axis values in a list
x = [3, 8, 1, 9, 7]
# y-axis values in a list
y = [7, 4, 2, 5, 10]
# function to plot line in matplotlib
plt.plot(x, y)
# Function to show the plot
plt.show()
- Scatter plot:
# Importing the pyplot API from matplotlib library
from matplotlib import pyplot as plt
# x-axis values in a list
x = [3, 8, 1, 9, 7]
# y-axis values in a list
y = [7, 4, 2, 5, 10]
# function to plot scatter in matplotlib
plt.scatter(x, y)
# Function to show the plot
plt.show()
- Bar plot:
# Importing the pyplot API from matplotlib library
from matplotlib import pyplot as plt
# x-axis values in a list
x = [3, 8, 1, 9, 7]
# y-axis values in a list
y = [7, 4, 2, 5, 10]
# function to plot bar graph in matplotlib
plt.bar(x, y)
# Function to show the plot
plt.show()
- Histogram:
# Importing the pyplot API from matplotlib library
from matplotlib import pyplot as plt
# y-axis values in a list
y = [7, 4, 2, 5, 10]
# function to plot histogram in matplotlib
plt.hist(y)
# Function to show the plot
plt.show()
- Pie chart:
# Importing the pyplot API from matplotlib library
from matplotlib import pyplot as plt
# x-axis values in a list
x = [7, 4, 2, 5, 10]
# y-axis values in a list
names = ['Sam', 'Aron', 'Bence', 'Hegrad', 'kristina']
# function to plot pie chart in matplotlib
plt.pie(y, labels=names)
# Function to show the plot
plt.show()
Read: Matplotlib is currently using agg a non-gui backend
Image functions in matplotlib
The Image functions available in matplotlib are as follows:
S.No. | Image functions | Description |
---|---|---|
1 | imread() | It reads an image from a file into an array. |
2 | imsave() | It saves an array as in image file. |
3 | imshow() | It displays an image on the axes. |
Axis functions in matplotlib
You can customize the axes properties by using the image functions available in matplotlib which are mentioned as follows:
S.No. | Axis functions | Description |
---|---|---|
1 | axes() | It adds axes to the figure. |
2 | text() | It adds text to the axes. |
3 | title() | It sets a title for the current axes. |
4 | xlabel() | It sets the label of the x-axis of the current axes. |
5 | ylabel() | It sets the label of the y-axis of the current axes. |
6 | xlim() | It gets or sets the x-axis limits of the current axes. |
7 | ylim() | It gets or sets the y-axis limits of the current axes. |
8 | xscale() | It sets the scaling of the x-axis of the current axes. |
9 | yscale() | It sets the scaling of the y-axis of the current axes. |
10 | xticks() | It gets or sets the x-limits of the current tick locations and labels. |
11 | yticks() | It gets or sets the y-limits of the current tick locations and labels. |
Read Matplotlib time series plot
Figure functions in matplotlib
You can create, save, and display a figure in matplotlib by using the given following functions:
S.No. | Figure functions | Description |
---|---|---|
1 | figure() | It creates a new figure. |
2 | show() | It displays a specified figure. |
3 | figtext() | It adds text to the figure. |
4 | savefig() | It saves the current figure. |
5 | close() | It closes a figure window. |
You may like the following Python Matplotlib tutorials:
- module ‘matplotlib’ has no attribute ‘artist’
- Matplotlib set y axis range
- module ‘matplotlib’ has no attribute ‘plot’
- Matplotlib xlim
- Matplotlib update plot in loop
- Matplotlib Pie Chart Tutorial
In this Python tutorial, we have discussed what is matplotlib library, and how to use it in Python and also covered the following topics:
- What is matplotlib
- Features of matplotlib
- Matplotlib environment setup
- Importing matplotlib library
- Matplotlib pyplot API
- Types of plots in matplotlib
- Image functions in matplotlib
- Axis functions in matplotlib
- Figure functions in matplotlib
I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.