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

Matplotlib AI

Matplotlib is a Python library used for data visualization and plotting. It allows creating various types of plots including line plots, scatter plots, histograms and more. Matplotlib code creates Figure and Axes objects to render plots. Common plotting functions include plot() for line plots, scatter() for scatter plots. Additional features include labels, titles, legends, color/style customization and saving/showing figures. Matplotlib is open source and widely used for data science and scientific computing in Python.

Uploaded by

Saif Jutt
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
98 views

Matplotlib AI

Matplotlib is a Python library used for data visualization and plotting. It allows creating various types of plots including line plots, scatter plots, histograms and more. Matplotlib code creates Figure and Axes objects to render plots. Common plotting functions include plot() for line plots, scatter() for scatter plots. Additional features include labels, titles, legends, color/style customization and saving/showing figures. Matplotlib is open source and widely used for data science and scientific computing in Python.

Uploaded by

Saif Jutt
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

Matplotlib

What is Matplotlib?

 Matplotlib is a low level graph plotting library in python that serves as


a visualization utility.
 Matplotlib was created by John D. Hunter.
 Matplotlib is open source and we can use it freely.
 Matplotlib is mostly written in python, a few segments are written in
C, Objective-C and Javascript for Platform compatibility.
 The source code for Matplotlib is located at this github
repository https://github.com/matplotlib/matplotlib
Installation of Matplotlib

 pip install matplotlib


 import matplotlib
print(matplotlib.__version__)
Matplotlib Pyplot

Most of the Matplotlib utilities lies under the pyplot submodule, and are usually
imported under the plt alias:
import matplotlib.pyplot as plt

Example:
import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([0, 6])


ypoints = np.array([0, 250])

plt.plot(xpoints, ypoints)
plt.show()
Matplotlib Plotting

 The plot() function is used to draw points (markers) in a diagram.


 By default, the plot() function draws a line from point to point.
 The function takes parameters for specifying points in the diagram.
 Parameter 1 is an array containing the points on the x-axis.
 Parameter 2 is an array containing the points on the y-axis.
 If we need to plot a line from (0, 6) to (0, 250), we have to pass two arrays
[0, 6] and [0, 250] to the plot function.
 Example as per previous slide
Plotting Without Line

 Draw two points in the diagram, one at position (1, 3) and one in position (8,
10):
 import matplotlib.pyplot as plt
 import numpy as np
 xpoints = np.array([1, 8])
 ypoints = np.array([3, 10])
 plt.plot(xpoints, ypoints, 'o')
 plt.show()
Multiple Points

 Draw a line in a diagram from position (1, 3) to (2, 8) then to (6, 1) and
finally to position (8, 10):

 import matplotlib.pyplot as plt


 import numpy as np
 xpoints = np.array([1, 2, 6, 8])
 ypoints = np.array([3, 8, 1, 10])
 plt.plot(xpoints, ypoints)
 plt.show()
Default X-Points

 If we do not specify the points in the x-axis, they will get the default values
0, 1, 2, 3, (etc. depending on the length of the y-points.
 So, if we take the same example as above, and leave out the x-points, the
diagram will look like this:

 import matplotlib.pyplot as plt


 import numpy as np
 ypoints = np.array([3, 8, 1, 10, 5, 7])
 plt.plot(ypoints)
 plt.show()
Markers

 You can use the keyword argument marker to emphasize each point with a
specified marker:

 import matplotlib.pyplot as plt


 import numpy as np
 ypoints = np.array([3, 8, 1, 10])
 plt.plot(ypoints, marker = 'o')
 plt.show()
Marker Reference
Marker Description
'o' Circle
'*' Star
'.' Point
',' Pixel
 You can choose any of these markers:
'x' X
 ypoints = np.array([3, 8, 1, 10])
'X' X (filled)

plt.plot(ypoints, 'o:r') '+' Plus


plt.show() 'P' Plus (filled)
Marker Reference (cont.)

 Line Reference
 Color Reference
 Marker Size
 You can use the keyword argument markersize or the shorter version, ms to set the
size of the markers:
 Marker Color
 You can use the keyword argument markeredgecolor or the shorter mec to set the
color of the edge of the markers:
 You can use the keyword argument markerfacecolor or the shorter mfc to set the
color inside the edge of the markers:
Marker Reference (cont.)

 import matplotlib.pyplot as plt


 import numpy as np
 ypoints = np.array([3, 8, 1, 10])
 plt.plot(ypoints, marker = 'o', ms = 20, mfc = 'r')
 plt.show()
Linestyle

 You can use the keyword argument linestyle, or shorter ls, to change the style
of the plotted line:
 import matplotlib.pyplot as plt
 import numpy as np
 ypoints = np.array([3, 8, 1, 10])
 plt.plot(ypoints, linestyle = 'dotted')
 plt.show()
Line Color

 You can use the keyword argument color or the shorter c to set the color of
the line:

 import matplotlib.pyplot as plt


 import numpy as np
 ypoints = np.array([3, 8, 1, 10])
 plt.plot(ypoints, color = 'r')
 plt.show()
Line Width

 You can use the keyword argument linewidth or the shorter lw to change the
width of the line.
 Plot with a 20.5pt wide line:

 import matplotlib.pyplot as plt


 import numpy as np
 ypoints = np.array([3, 8, 1, 10])
 plt.plot(ypoints, linewidth = '20.5')
 plt.show()
Multiple Lines

 You can plot as many lines as you like by simply adding more plt.plot()
functions:
import matplotlib.pyplot as plt
import numpy as np
y1 = np.array([3, 8, 1, 10])
y2 = np.array([6, 2, 7, 11])
plt.plot(y1)
plt.plot(y2)
plt.show()
Multiple Lines (cont.)
 You can also plot many lines by adding the points for the x- and y-axis for each line in the
same plt.plot() function.
 In the examples above we only specified the points on the y-axis, meaning that the points on
the x-axis got the the default values (0, 1, 2, 3).
 The x- and y- values come in pairs:

import matplotlib.pyplot as plt


import numpy as np
x1 = np.array([0, 1, 2, 3])
y1 = np.array([3, 8, 1, 10])
x2 = np.array([0, 1, 2, 3])
y2 = np.array([6, 2, 7, 11])
plt.plot(x1, y1, x2, y2)
plt.show()
Create Labels for a Plot
With Pyplot, you can use the xlabel() and ylabel() functions to set a label for the x-
and y-axis.
Add labels to the x- and y-axis:

import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.xlabel("Average Pulse")
plt.ylabel("Calorie Burnage")
plt.show()
Matplotlib Labels and Title
With Pyplot, you can use the title() function to set a title for the plot.

import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.plot(x, y)
plt.title("Sports Watch Data")
plt.xlabel("Average Pulse")
plt.ylabel("Calorie Burnage")
plt.show()

plt.title("Sports Watch Data", loc = 'left’)


plt.title("Sports Watch Data", fontdict = font1)
Matplotlib Adding Grid Lines
With Pyplot, you can use the grid() function to add grid lines to the plot.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([80, 85, 90, 95, 100, 105, 110, 115, 120, 125])
y = np.array([240, 250, 260, 270, 280, 290, 300, 310, 320, 330])
plt.title("Sports Watch Data")
plt.xlabel("Average Pulse")
plt.ylabel("Calorie Burnage")
plt.plot(x, y)
plt.grid()
plt.show()
 plt.grid(axis = 'x')  plt.grid(axis = 'y')

 plt.grid(color = 'blue',
linestyle = '--', linewidth
= 0.5)
Display Multiple Plots
import matplotlib.pyplot as plt
import numpy as np
#plot 1:
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x,y)
#plot 2:
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.show()
Display Multiple Plots (cont)
 import matplotlib.pyplot as plt
 import numpy as np
 #plot 1:
 x = np.array([0, 1, 2, 3])
 y = np.array([3, 8, 1, 10])
 plt.subplot(2, 1, 1)
 plt.plot(x,y)
 #plot 2:
 x = np.array([0, 1, 2, 3])
 y = np.array([10, 20, 30, 40])
 plt.subplot(2, 1, 2)
 plt.plot(x,y)
 plt.show()
Title & Super Title

 import matplotlib.pyplot as plt


import numpy as np
#plot 1:
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x,y)
plt.title("SALES")
#plot 2:
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("INCOME")
plt.suptitle("MY SHOP")
plt.show()
Matplotlib Scatter
 Creating Scatter Plots
 With Pyplot, you can use the scatter() function to draw a scatter plot.
 The scatter() function plots one dot for each observation. It needs two arrays
of the same length, one for the values of the x-axis, and one for values on the
y-axis:

 import matplotlib.pyplot as plt


 import numpy as np
 x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
 y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
 plt.scatter(x, y)
 plt.show()
Matplotlib Scatter (cont..)

 The observation in the example above is the result of 13 cars passing


by.
 The X-axis shows how old the car is.
 The Y-axis shows the speed of the car when it passes.
 Are there any relationships between the observations?
 It seems that the newer the car, the faster it drives, but that could be
a coincidence, after all we only registered 13 cars.
Matplotlib Scatter -- Compare Plots
 In the example above, there seems to be a relationship between speed
and age, but what if we plot the observations from
another day as well? Will the scatter plot tell us something else?
 Draw two plots on the same figure:
 import matplotlib.pyplot as plt
import numpy as np
#day one, the age and speed of 13 cars:
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y)
#day two, the age and speed of 15 cars:
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y)
plt.show()

 plt.scatter(x, y, color = '#88c999')


Color Each Dot

 import matplotlib.pyplot as plt


import numpy as np
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors =
np.array(["red","green","blue","yellow","pink","black","orange","pu
rple","beige","brown","gray","cyan","magenta"])
plt.scatter(x, y, c=colors)
plt.show()

 sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75])
 plt.scatter(x, y, s=sizes) # alpha=0.5
ColorMap

 The Matplotlib module has a number of available colormaps.


 A colormap is like a list of colors, where each color has a value that ranges
from 0 to 100.
 This colormap is called 'viridis' and as you can see it ranges from 0, which is a
purple color, and up to 100, which is a yellow color.
 You can specify the colormap with the keyword argument cmap with the value
of the colormap, in this case 'viridis' which is one of the built-in colormaps
available in Matplotlib.
 In addition you have to create an array with values (from 0 to 100), one value
for each of the point in the scatter plot:
ColorMap

 import matplotlib.pyplot as plt


 import numpy as np
 x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
 y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
 colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])
 plt.scatter(x, y, c=colors, cmap='viridis')
 plt.colorbar()
 plt.show()
Available ColorMaps

 You can choose any of the built-in colormaps:


Alpha
 You can adjust the transparency of the dots with the alpha argument.
 Just like colors, make sure the array for sizes has the same length as the arrays for
the x- and y-axis:

 import matplotlib.pyplot as plt


 import numpy as np
 x = np.random.randint(100, size=(100))
 y = np.random.randint(100, size=(100))
 colors = np.random.randint(100, size=(100))
 sizes = 10 * np.random.randint(100, size=(100))
 plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral')
 plt.colorbar()
 plt.show()
Creating Bars

 With Pyplot, you can use the bar() function to draw bar graphs:

 import matplotlib.pyplot as plt


 import numpy as np
 x = np.array(["A", "B", "C", "D"])
 y = np.array([3, 8, 1, 10])
 plt.bar(x,y)
 plt.show()
 plt.barh(x, y)  plt.bar(x, y, color = "#4CAF50")  plt.bar(x, y, width = 0.1)
Matplotlib Histograms
 A histogram is a graph showing frequency distributions.
 It is a graph showing the number of observations within each given
interval.
 Example: Say you ask for the height of 250 people, you might end up
with a histogram like this:

 import matplotlib.pyplot as plt


 import numpy as np
 x = np.random.normal(170, 10, 250)
 plt.hist(x)
 plt.show()
Creating Pie Charts

 With Pyplot, you can use the pie() function to draw pie charts:
 Note: The size of each wedge is determined by comparing the value with all
the other values, by using this following formula:
 The value divided by the sum of all values: x/sum(x)

 import matplotlib.pyplot as plt


 import numpy as np
 y = np.array([35, 25, 25, 15])
 plt.pie(y)
 plt.show()
Pie Charts - Explode
 Maybe you want one of the wedges to stand out? The explode parameter
allows you to do that.
 The explode parameter, if specified, and not None, must be an array with one
value for each wedge.
 Each value represents how far from the center each wedge is displayed:

 import matplotlib.pyplot as plt


 import numpy as np
 y = np.array([35, 25, 25, 15])
 mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
 myexplode = [0.2, 0, 0, 0]
 plt.pie(y, labels = mylabels, explode = myexplode)
 plt.show()
Pie Charts - Legend, Colors

 y = np.array([35, 25, 25, 15])


 mylabels = ["Apples", "Bananas", "Cherries", "Dates"]
 mycolors = ["black", "hotpink", "b", "#4CAF50"]

 plt.pie(y, labels = mylabels, colors = mycolors)


 plt.legend() # loc='upper left’ or loc = 1
 plt.show()

You might also like