Matplotlib is one of the most popular Python packages used for data visualization. It is a cross-platform library for making 2D plots from data in arrays. It provides an object-oriented API that helps in embedding plots in applications using Python GUI toolkits such as PyQt, WxPython Tkinter. It can be used in Python and IPython shells, Jupyter notebook, and web application servers also.
How to install matplot
Matplotlib and its dependency packages are available in the form of wheel packages on the standard Python package repositories and can be installed on Windows, Linux as well as macOS systems using the pip package manager.
python -m pip install -U pip python -m pip install -U matplotlib
matplotlib.pyplot is a collection of command style functions that make Matplotlib work like MATLAB. Each pyplot function makes some changes to a figure. For example, a function creates a figure, a plotting area in a figure, plots some lines in a plotting area, decorates the plot with labels, etc.
The following are the list of plots that are available in matplot
Plot -It is used to plot lines and/or markers to the Axes
Scatter Make a scatter plot of x vs y
Bar Make a bar plot
Barh Make a horizontal bar plot
Boxplot Make a box and whisker plot
Hist Plot a histogram
Pie Plot a pie chart
Step Make a step plot
Stem Create a stem plot
Stackplot Draw a stacked area plot
The following are the list of Axis Functions that are available in matplot
Axes Add axes to the figure
Text Add text to the axes.
Title Set a title of the current axes
X – label Set the x-axis label of the current axis
Y – label Set the y-axis label of the current axis
X – lim Get or set the x limits of the current axes
Y – lim Get or set the y limits of the current axes
X – ticks Get or set the x-limits of the current tick locations and labels. Y – ticks Get or set the y-limits of the current tick locations and labels.
The following are the list of Figure Functions that are available in matplot
Figtext Add text to figure
Figure Creates a new figure
Sample Plot using matplot
Create a new untitled notebook with the .ipynb extension (stands for the IPython notebook)
We shall now display a simple line plot between 2 arrays To begin with, the Pyplot module from the Matplotlib package is imported, with an alias plt as a matter of convention.
import matplotlib.pyplot as plt
Next we need an array of numbers to plot. Various array functions are defined in the NumPy library which is imported with the np alias.
import numpy as np
Now we will obtain the ndarray objects for x and y
x = np.random.randint(5, 50,10)
## To generate random numbers for plotting
y = 2*x
The values from two arrays are plotted using the plot()
You can set the plot title, and labels for x and y axes.
plt.title('X vs Y’)
The Plot viewer window is invoked by the show() function plt.show()
The complete program is as follows
import numpy as np import matplotlib.pyplot as plt x=np.random.randint(5,50,10) y=2*x plt.xlabel("X-values") plt.ylabel("Y-values") plt.title('X vs Y') plt.plot(x,y)
To display plot outputs inside the notebook itself and not in the separate viewer , enter the following magic statement
Matplotlib – PyLab module
PyLab is a procedural interface to the Matplotlib object-oriented plotting library. Matplotlib is the whole package; matplotlib.pyplot is a module in Matplotlib, and PyLab is a module that gets installed alongside Matplotlib.
PyLab is a convenience module that imports matplotlib.pyplot (for plotting) and NumPy (for Mathematics and working with arrays) in a single namespace. Although many examples use PyLab, it is no longer recommended. Now we will plot a curve and try to play with the color and markers style
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-3, 3, 30) y = x**2 plt.plot(x,y)
Supported marker styles :
“+” , “,” , “.” , “1” , “2” , “3” , “4” Supported line styles :
“–” , “– –” , “-.” , “:” , “steps”
Supported colour formats :
“b” , “g” , “r” , “c” , “m” , “y” , “k” , “w”
To plot symbols rather than lines and change colour , we need to provide an additional string argument.
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-3, 3, 30) y = x**2 ## “g” represents the colour of the graph plt.plot(x,y,’g’)
Now we will change the marker style of the above graph.
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-3, 3, 30) y = x**2 ## “r” represents the colour and “-o” represents the marker style plt.plot(x,y,’r-o’)
Plotting curves of given equation
Here, we use NumPy which is a general-purpose array-processing package in python.
• To set the x-axis values, we use the np.arange() method in which the first two arguments are for range and the third one for step-wise increment. The result is a numpy array.
• To get corresponding y-axis values, we simply use the predefined np.sin() method on the numpy array.
• Finally, we plot the points by passing x and y arrays to the plt.plot() function.
x = np.arange(0, 2*(np.pi), 0.1) y = np.sin(x)
x = np.linspace(-3, 3, 30)
y = np.linspace(-3, 3, 20)
plt.plot(x, sin(x),'g--') plt.scatter(y,sin(y),c='b',marker='o') plt.show()
Plots can be overlaid. Just use the multiple plot commands.
x = np.linspace(-3, 3, 30) plt.plot(x, sin(x),’b’) plt.plot(x, cos(x), ‘r’) plt.plot(x, -sin(x), ‘g’) plt.legend([‘Sin’,’Cos','-Sin'])
• Here, we plot three curves on the same graph. We differentiate between them by giving them a name(label) which is passed as an argument of .plot() function.
• The small rectangular box giving information about the type of line and its color is called a legend. We can add a legend to our plot using .legend() function.
Sometimes it is helpful to compare different views of data side by side. To this end, Matplotlib has the concept of subplots: groups of smaller axes that can exist together within a single figure. These subplots might be insets, grids of plots, or other more complicated layouts. In this section, we’ll explore four routines for creating subplots in Matplotlib. This is the general syntax for subplots
subplot(nrows, ncols, index)
Now we will try to create a empty 2 X 2 layout
Now we will try to plot graphs using subplot function
x = np.linspace(-3, 3, 30) plt.subplot(2,2,1) plt.plot(x, sin(x),’b’) plt.subplot(2,2,2) plt.plot(x, cos(x),’r’) plt.subplot(2,2,3) plt.plot(x, -sin(x),’g’) plt.subplot(2,2,4) plt.plot(x, -cos(x),’y')
In the next article, we will learn how to visualize the remaining types of plots.