Contour plots also called level plots are a tool for doing multivariate analysis and visualizing 3-D plots in 2-D space. If we consider X and Y as our variables we want to plot then the response Z will be plotted as slices on the X-Y plane due to which contours are sometimes referred as Z-slices or iso-response.
Contour plots are widely used to visualize density, altitudes or heights of the mountain as well as in the meteorological department. Due to such wide usage matplotlib.pyplot
provides a method contour
to make it easy for us to draw contour plots.
matplotlib.pyplot.contour
The matplotlib.pyplot.contour() are usually useful when Z = f(X, Y) i.e Z changes as a function of input X and Y. A contourf()
is also available which allows us to draw filled contours.
Syntax: matplotlib.pyplot.contour([X, Y, ] Z, [levels], **kwargs)
Parameters:
X, Y: 2-D numpy arrays with same shape as Z or 1-D arrays such that len(X)==M and len(Y)==N (where M and N are rows and columns of Z)
Z: The height values over which the contour is drawn. Shape is (M, N)
levels: Determines the number and positions of the contour lines / regions.Returns: QuadContourSet
Below examples illustrate the matplotlib.pyplot.contour()
function in matplotlib.pyplot:
Example #1: Plotting of Contour using contour()
which only plots contour lines.
# Implementation of matplotlib function import matplotlib.pyplot as plt import numpy as np feature_x = np.arange( 0 , 50 , 2 ) feature_y = np.arange( 0 , 50 , 3 ) # Creating 2-D grid of features [X, Y] = np.meshgrid(feature_x, feature_y) fig, ax = plt.subplots( 1 , 1 ) Z = np.cos(X / 2 ) + np.sin(Y / 4 ) # plots contour lines ax.contour(X, Y, Z) ax.set_title( 'Contour Plot' ) ax.set_xlabel( 'feature_x' ) ax.set_ylabel( 'feature_y' ) plt.show() |
Output:
Example #2: Plotting of contour using contourf()
which plots filled contours.
# Implementation of matplotlib function import matplotlib.pyplot as plt import numpy as np feature_x = np.linspace( - 5.0 , 3.0 , 70 ) feature_y = np.linspace( - 5.0 , 3.0 , 70 ) # Creating 2-D grid of features [X, Y] = np.meshgrid(feature_x, feature_y) fig, ax = plt.subplots( 1 , 1 ) Z = X * * 2 + Y * * 2 # plots filled contour plot ax.contourf(X, Y, Z) ax.set_title( 'Filled Contour Plot' ) ax.set_xlabel( 'feature_x' ) ax.set_ylabel( 'feature_y' ) plt.show() |
Output: