0% found this document useful (0 votes)
2 views

Unit 5 Maplotlib 2

The document provides an overview of Jupyter Notebook and Matplotlib, an open-source library for data visualization in Python. It covers installation methods, basic plotting functions, and various plot types such as line, bar, and scatter plots, along with examples and explanations of key classes like Figure and Axes. Additionally, it discusses customizing plots, creating legends, and methods for adding multiple plots within a single figure.

Uploaded by

xech.170
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Unit 5 Maplotlib 2

The document provides an overview of Jupyter Notebook and Matplotlib, an open-source library for data visualization in Python. It covers installation methods, basic plotting functions, and various plot types such as line, bar, and scatter plots, along with examples and explanations of key classes like Figure and Axes. Additionally, it discusses customizing plots, creating legends, and methods for adding multiple plots within a single figure.

Uploaded by

xech.170
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 22

The Jupyter Notebook is an open-source web application that

allows you to create and share documents that contain live code,
equations, visualizations and narrative text.
Uses include data cleaning and transformation, numerical
simulation, statistical modeling, data visualization, machine
learning, and much more.

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.
To get started you just need to make the necessary imports,
prepare some data, and you can start plotting with the help of
the plot() function.
When you’re done, remember to show your plot using
the show() function. Matplotlib is written in Python and makes use
of NumPy, the numerical mathematics extension of Python.
It consists of several plots like:
 Line
 Bar
 Scatter
 Histogram
 And many more
Installation
 Install Matplotlib with pip Matplotlib can also be installed
using the Python package manager, pip. To install
Matplotlib with pip, open a terminal window and type:
pip install matplotlib
 Install Matplotlib with the Anaconda Prompt Matplotlib
can be installed using with the Anaconda Prompt. If the
Anaconda Prompt is available on your machine, it can
usually be seen in the Windows Start Menu. To install
Matplotlib, open the Anaconda Prompt and type:
conda install matplotlib

Matplotlib is easy to use and an amazing visualizing library in Python. It is built on
NumPy arrays and designed to work with the broader SciPy stack and consists of
several plots like line, bar, scatter, histogram, etc.

Table Of Content
 Getting Started
 Pyplot
 Figure class
 Axes Class
 Setting Limits and Tick labels
 Multiple Plots
 What is a Legend?
 Creating Different Types of Plots
 Line Graph
 Bar chart
 Histograms
 Scatter Plot
 Pie Chart
 3D Plots
 Working with Images
 Customizing Plots in Matplotlib
 More articles on Matplotlib
 Exercises, Applications, and Projects

Plotting two lists containing the X, Y coordinates for the plot.


Example:
import matplotlib.pyplot as plt

# initializing the data


x = [10, 20, 30, 40]
y = [20, 30, 40, 50]

# plotting the data


plt.plot(x, y)

# Adding the title


plt.title("Simple Plot")

# Adding the labels


plt.ylabel("y-axis")
plt.xlabel("x-axis")
plt.show()

Output:
In the above example, the elements of X and Y provides the coordinates for the x axis
and y axis and a straight line is plotted against those coordinates.
Pyplot
Pyplot is a Matplotlib module that provides a MATLAB-like interface. Pyplot
provides functions that interact with the figure i.e. creates a figure, decorates the plot
with labels, and creates a plotting area in a figure.
Example:
# Python program to show pyplot module
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.axis([0, 6, 0, 20])
plt.show()

Output:
Matplotlib take care of the creation of inbuilt defaults like Figure and Axes.
 Figure: This class is the top-level container for all the plots means it is the
overall window or page on which everything is drawn. A figure object can be
considered as a box-like container that can hold one or more axes.
 Axes: This class is the most basic and flexible component for creating sub-
plots. You might confuse axes as the plural of axis but it is an individual plot or
graph. A given figure may contain many axes but given axes can only be in one
figure.
Figure class
Figure class is the top-level container that contains one or more axes. It is the overall
window or page on which everything is drawn.
Syntax:
class matplotlib.figure.Figure(figsize=None, dpi=None, facecolor=None,
edgecolor=None, linewidth=0.0, frameon=None, subplotpars=None,
tight_layout=None, constrained_layout=None)
Example 1:
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

# Creating a new figure with width = 5 inches and height = 4


inches
fig = plt.figure(figsize =(5, 4))

# Creating a new axes for the figure


ax = fig.add_axes([1, 1, 1, 1])

# Adding the data to be plotted


ax.plot([2, 3, 4, 5, 5, 6, 6],
[5, 7, 1, 3, 4, 6 ,8])
plt.show()

Output:
Example 2: Creating multiple plots
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

# Creating a new figure with width = 5 inches and height = 4 inches


fig = plt.figure(figsize =(5, 4))

# Creating first axes for the figure


ax1 = fig.add_axes([1, 1, 1, 1])

# Creating second axes for the figure


ax2 = fig.add_axes([1, 0.5, 0.5, 0.5])

# Adding the data to be plotted


ax1.plot([2, 3, 4, 5, 5, 6, 6],
[5, 7, 1, 3, 4, 6 ,8])
ax2.plot([1, 2, 3, 4, 5],
[2, 3, 4, 5, 6])

plt.show()

Output:

Axes Class
Axes class is the most basic and flexible unit for creating sub-plots. A given figure
may contain many axes, but a given axes can only be present in one figure. The axes()
function creates the axes object. Let’s see the below example.
Syntax:
matplotlib.pyplot.axis(*args, emit=True, **kwargs)
Example 1:
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
# Creating the axes object with argument as [left, bottom, width,
height]
ax = plt.axes([1, 1, 1, 1])

Output:

Example 2:
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
fig = plt.figure(figsize = (5, 4))

# Adding the axes to the figure


ax = fig.add_axes([1, 1, 1, 1])

# plotting 1st dataset to the figure


ax1 = ax.plot([1, 2, 3, 4], [1, 2, 3, 4])

# plotting 2nd dataset to the figure


ax2 = ax.plot([1, 2, 3, 4], [2, 3, 4, 5])
plt.show()

Output:
Setting Limits and Tick labels
You might have seen that Matplotlib automatically sets the values and the
markers(points) of the x and y axis, however, it is possible to set the limit and markers
manually. set_xlim() and set_ylim() functions are used to set the limits of the x-axis
and y-axis respectively. Similarly, set_xticklabels() and set_yticklabels() functions
are used to set tick labels.
Example:
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
x = [3, 1, 3]
y = [3, 2, 1]

# Creating a new figure with width = 5 inches


# and height = 4 inches
fig = plt.figure(figsize =(5, 4))

# Creating first axes for the figure


ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# Adding the data to be plotted


ax.plot(x, y)
ax.set_xlim(1, 2)
ax.set_xticklabels((
"one", "two", "three", "four", "five",
"six"))
plt.show()

Output:

Multiple Plots
Till now you must have got a basic idea about Matplotlib and plotting some simple
plots, now what if you want to plot multiple plots in the same figure. This can be done
using multiple ways. One way was discussed above using the add_axes() method of
the figure class. Let’s see various ways multiple plots can be added with the help of
examples.
Method 1: Using the add_axes() method
The add_axes() method figure module of matplotlib library is used to add an axes to
the figure.
Syntax:
add_axes(self, *args, **kwargs)
Example:
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

# Creating a new figure with width = 5 inches


# and height = 4 inches
fig = plt.figure(figsize =(5, 4))

# Creating first axes for the figure


ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# Creating second axes for the figure


ax2 = fig.add_axes([0.5, 0.5, 0.3, 0.3])
# Adding the data to be plotted
ax1.plot([5, 4, 3, 2, 1], [2, 3, 4, 5, 6])
ax2.plot([1, 2, 3, 4, 5], [2, 3, 4, 5, 6])
plt.show()

Output:

The add_axes() method adds the plot in the same figure by creating another axes
object.
Method 2: Using subplot() method.
This method adds another plot to the current figure at the specified grid position.
Syntax:
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(ax)
Example:
import matplotlib.pyplot as plt
# data to display on plots
x = [3, 1, 3]
y = [3, 2, 1]
z = [1, 3, 1]

# Creating figure object


plt.figure()

# adding first subplot


plt.subplot(121)
plt.plot(x, y)

# adding second subplot


plt.subplot(122)
plt.plot(z, y)

Output:

Note: Subplot() function have the following disadvantages –


 It does not allow adding multiple subplots at the same time.
 It deletes the preexisting plot of the figure.
Method 3: Using subplots() method
This function is used to create figure and multiple subplots at the same time.
Syntax:
matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False,
squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
Example:
import matplotlib.pyplot as plt

# Creating the figure and subplots


# according the argument passed
fig, axes = plt.subplots(1, 2)

# plotting the data in the 1st subplot


axes[0].plot([1, 2, 3, 4], [1, 2, 3, 4])

# plotting the data in the 1st subplot only


axes[0].plot([1, 2, 3, 4], [4, 3, 2, 1])

# plotting the data in the 2nd subplot only


axes[1].plot([1, 2, 3, 4], [1, 1, 1, 1])

Output:

Method 4: Using subplot2grid() method


This function give additional flexibility in creating axes object at a specified location
inside a grid. It also helps in spanning the axes object across multiple rows or
columns. In simpler words, this function is used to create multiple charts within the
same figure.
Syntax:
Plt.subplot2grid(shape, location, rowspan, colspan)
Example:
import matplotlib.pyplot as plt
# data to display on plots
x = [3, 1, 3]
y = [3, 2, 1]
z = [1, 3, 1]

# adding the subplots


axes1 = plt.subplot2grid (
(7, 1), (0, 0), rowspan = 2, colspan = 1)
axes2 = plt.subplot2grid (
(7, 1), (2, 0), rowspan = 2, colspan = 1)
axes3 = plt.subplot2grid (
(7, 1), (4, 0), rowspan = 2, colspan = 1)

# plotting the data


axes1.plot(x, y)
axes2.plot(x, z)
axes3.plot(z, y)
Output:

Refer to the below articles to get detailed information about subplots


 How to create multiple subplots in Matplotlib in Python?
 How to Add Title to Subplots in Matplotlib?
 How to Set a Single Main Title for All the Subplots in Matplotlib?
 How to Turn Off the Axes for Subplots in Matplotlib?
 How to Create Different Subplot Sizes in Matplotlib?
 How to set the spacing between subplots in Matplotlib in Python?
 Matplotlib Sub plotting using object oriented API
 Make subplots span multiple grid rows and columns in Matplotlib
What is a Legend?
A legend is an area describing the elements of the graph. In simple terms, it reflects
the data displayed in the graph’s Y-axis. It generally appears as the box containing a
small sample of each color on the graph and a small description of what this data
means.

Creating the Legend

A Legend can be created using the legend() method. The attribute Loc in the legend()
is used to specify the location of the legend. The default value of loc is loc=”best”
(upper left). The strings ‘upper left’, ‘upper right’, ‘lower left’, ‘lower right’ place the
legend at the corresponding corner of the axes/figure.
The attribute bbox_to_anchor=(x, y) of legend() function is used to specify the
coordinates of the legend, and the attribute ncol represents the number of columns that
the legend has. Its default value is 1.
Syntax:
matplotlib.pyplot.legend([“blue”, “green”], bbox_to_anchor=(0.75, 1.15), ncol=2)
Example:
import matplotlib.pyplot as plt
# data to display on plots
x = [3, 1, 3]
y = [3, 2, 1]
plt.plot(x, y)
plt.plot(y, x)

# Adding the legends


plt.legend(["blue", "orange"])
plt.show()

Output:

Refer to the below articles to get detailed information about the legend –
 Matplotlib.pyplot.legend() in Python
 Matplotlib.axes.Axes.legend() in Python
 Change the legend position in Matplotlib
 How to Change Legend Font Size in Matplotlib?
 How Change the vertical spacing between legend entries in Matplotlib?
 Use multiple columns in a Matplotlib legend
 How to Create a Single Legend for All Subplots in Matplotlib?
 How to manually add a legend with a color box on a Matplotlib figure ?
 How to Place Legend Outside of the Plot in Matplotlib?
 How to Remove the Legend in Matplotlib?
 Remove the legend border in Matplotlib
Creating Different Types of Plots
Line Graph

Till now you all must have seen that we are working with only the line charts as they
are easy to plot and understand. Line Chart is used to represent a relationship between
two data X and Y on a different axis. It is plotted using the pot() function. Let’s see
the below example
Example:

 Python3

import matplotlib.pyplot as plt


# data to display on plots
x = [3, 1, 3]
y = [3, 2, 1]

# This will plot a simple line chart


# with elements of x as x axis and y
# as y axis
plt.plot(x, y)
plt.title("Line Chart")

# Adding the legends


plt.legend(["Line"])
plt.show()

Output:

Refer to the below article to get detailed information about line chart.
 Line chart in Matplotlib
 Line plot styles in Matplotlib
 Plot a Horizontal line in Matplotlib
 Plot a Vertical line in Matplotlib
 Plot Multiple lines in Matplotlib
 Change the line opacity in Matplotlib
 Increase the thickness of a line with Matplotlib
 Plot line graph from NumPy array
 How to Fill Between Multiple Lines in Matplotlib?

Bar chart

A bar plot or bar chart is a graph that represents the category of data with rectangular
bars with lengths and heights that is proportional to the values which they represent.
The bar plots can be plotted horizontally or vertically. A bar chart describes the
comparisons between the discrete categories. It can be created using the bar() method.
Syntax:
plt.bar(x, height, width, bottom, align)
Example:
 Python3

import matplotlib.pyplot as plt


# data to display on plots
x = [3, 1, 3, 12, 2, 4, 4]
y = [3, 2, 1, 4, 5, 6, 7]

# This will plot a simple bar chart


plt.bar(x, y)

# Title to the plot


plt.title("Bar Chart")

# Adding the legends


plt.legend(["bar"])
plt.show()

Output:
Refer to the below articles to get detailed information about Bar charts –
 Bar Plot in Matplotlib
 Draw a horizontal bar chart with Matplotlib
 Create a stacked bar plot in Matplotlib
 Stacked Percentage Bar Plot In MatPlotLib
 Plotting back-to-back bar charts Matplotlib
 How to display the value of each bar in a bar chart using Matplotlib?
 How To Annotate Bars in Barplot with Matplotlib in Python?
 How to Annotate Bars in Grouped Barplot in Python?

Histograms

A histogram is basically used to represent data in the form of some groups. It is a


type of bar plot where the X-axis represents the bin ranges while the Y-axis gives
information about frequency. To create a histogram the first step is to create a bin of
the ranges, then distribute the whole range of the values into a series of intervals, and
count the values which fall into each of the intervals. Bins are clearly identified as
consecutive, non-overlapping intervals of variables. The hist() function is used to
compute and create histogram of x.
Syntax:
matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None,
cumulative=False, bottom=None, histtype=’bar’, align=’mid’,
orientation=’vertical’, rwidth=None, log=False, color=None, label=None,
stacked=False, \*, data=None, \*\*kwargs)
Example:
 Python3

import matplotlib.pyplot as plt


# data to display on plots
x = [1, 2, 3, 4, 5, 6, 7, 4]
# This will plot a simple histogram
plt.hist(x, bins = [1, 2, 3, 4, 5, 6, 7])
# Title to the plot
plt.title("Histogram")
# Adding the legends
plt.legend(["bar"])
plt.show()

Output:
Refer to the below articles to get detailed information about histograms.
 Plotting Histogram in Python using Matplotlib
 Create a cumulative histogram in Matplotlib
 How to plot two histograms together in Matplotlib?
 Overlapping Histograms with Matplotlib in Python
 Bin Size in Matplotlib Histogram
 Compute the histogram of a set of data using NumPy in Python
 Plot 2-D Histogram in Python using Matplotlib

Scatter Plot

Scatter plots are used to observe the relationship between variables and use dots to
represent the relationship between them. The scatter() method in the matplotlib
library is used to draw a scatter plot.
Syntax:
matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None,
cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None,
edgecolors=None)
Example:
import matplotlib.pyplot as plt
# data to display on plots
x = [3, 1, 3, 12, 2, 4, 4]
y = [3, 2, 1, 4, 5, 6, 7]

# This will plot a simple scatter chart


plt.scatter(x, y)

# Adding legend to the plot


plt.legend("A")

# Title to the plot


plt.title("Scatter chart")
plt.show()

Output:

Refer to the below articles to get detailed information about the scatter plot.
 matplotlib.pyplot.scatter() in Python
 How to add a legend to a scatter plot in Matplotlib ?
 How to Connect Scatterplot Points With Line in Matplotlib?
 How to create a Scatter Plot with several colors in Matplotlib?
 How to increase the size of scatter points in Matplotlib ?

Pie Chart

A Pie Chart is a circular statistical plot that can display only one series of data. The
area of the chart is the total percentage of the given data. The area of slices of the pie
represents the percentage of the parts of the data. The slices of pie are called wedges.
The area of the wedge is determined by the length of the arc of the wedge. It can be
created using the pie() method.
Syntax:
matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None,
autopct=None, shadow=False)
Example:
import matplotlib.pyplot as plt
# data to display on plots
x = [1, 2, 3, 4]

# this will explode the 1st wedge


# i.e. will separate the 1st wedge
# from the chart
e =(0.1, 0, 0, 0)

# This will plot a simple pie chart


plt.pie(x, explode = e)

# Title to the plot


plt.title("Pie chart")
plt.show()

Output:

Refer to the below articles to get detailed information about pie charts.
 matplotlib.axes.Axes.pie() in Python
 Plot a pie chart in Python using Matplotlib
 How to set border for wedges in Matplotlib pie chart?
 Radially displace pie chart wedge in Matplotlib

3D Plots

Matplotlib was introduced keeping in mind, only two-dimensional plotting. But at the
time when the release of 1.0 occurred, the 3D utilities were developed upon the 2D
and thus, we have a 3D implementation of data available today.
Example:
import matplotlib.pyplot as plt
# Creating the figure object
fig = plt.figure()

# keeping the projection = 3d


# creates the 3d plot
ax = plt.axes(projection = '3d')

Output:

The above code lets the creation of a 3D plot in Matplotlib. We can create different
types of 3D plots like scatter plots, contour plots, surface plots, etc. Let’s create a
simple 3D line plot.
Example:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
z = [1, 8, 27, 64, 125]
# Creating the figure object
fig = plt.figure()
# keeping the projection = 3d
# creates the 3d plot
ax = plt.axes(projection = '3d')
ax.plot3D(z, y, x)

Output:
Refer to the below articles to get detailed information about 3D plots.
 Three-dimensional Plotting in Python using Matplotlib
 3D Scatter Plotting in Python using Matplotlib
 3D Surface plotting in Python using Matplotlib
 3D Wireframe plotting in Python using Matplotlib
 3D Contour Plotting in Python using Matplotlib
 Tri-Surface Plot in Python using Matplotlib
 Surface plots and Contour plots in Python
 How to change angle of 3D plot in Python?
 How to animate 3D Graph using Matplotlib?
 Draw contours on an unstructured triangular grid in Python using
Matplotlib
Working with Images
The image module in matplotlib library is used for working with images in Python.
The image module also includes two useful methods which are imread which is used
to read images and imshow which is used to display the image.
Example:
# importing required libraries
import matplotlib.pyplot as plt
import matplotlib.image as img
# reading the image
testImage = img.imread('g4g.png')
# displaying the image
plt.imshow(testImage)

Output:

You might also like