A contour plot is a graphical method to visualize the 3-D surface by plotting constant Z slices called contours in a 2-D format. The contour plot is an alternative to a 3-D surface plot
The contour plot is formed by:
- Vertical axis: Independent variable 2
- Horizontal axis: Independent variable 1
- Lines: iso-response values, can be calculated with the help (x,y).
The independent variable usually restricted to a regular grid. The actual techniques for determining the correct iso-response values are rather complex and almost always computer-generated.
The contour plot is used to depict the change in Z values as compared to X and Y values. If the data (or function) do not form a regular grid, you typically need to perform a 2-D interpolation to form a regular grid.
For one variable data, a run sequence/ histogram is considered necessary. For two-variable data, a scatter plot is considered necessary. The contour plots can also polar co-ordinates (r,theta) instead of traditional rectangular (x, y, z) coordinates.
Types of Contour Plot:
- Rectangular Contour plot: A projection of 2D-plot in 2D-rectangular canvas. It is the most common form of the contour plot.
- Polar contour plot: Polar contour plot is plotted by using the polar coordinates r and theta. The response variable here is the collection of values generated while passing r and theta into the given function, where r is the distance from origin and theta is the angle from the positive x axis.
- Ternary contour plot: Ternary contour plot is used to represent the relationship between 3 explanatory variables and the response variable in the form of a filled triangle.
Contour plot can be plotted in different programming languages:
- Python/ Matplotlib: Contour plot can be plotted using plt.contour or plt.contourf functions, where plt is matplotlib.pyplot. The difference between these two that plot.contour generates hollow contour plot, the plt.contourf generated filled.
- Matlab: functions such as contourf (2d-plot) and contour3 (3D-contour) can be used for contour plotting
- R: can create a contour plot with filled.contour functions in R.
Implementations:
- Rectangular Contour Plot: Below is the sample code for plotting rectangular contour plots in Python and matplotlib.
Python3
# imports
import numpy as np
import matplotlib.pyplot as plt
#
# define a function
def func(x, y):
return np.sin(x) ** 2 + np.cos(y) **2
# generate 50 values b/w 0 a5
x = np.linspace(0, 5, 50)
y = np.linspace(0, 5, 50)
# Generate combination of grids
X, Y = np.meshgrid(x, y)
Z = func(X, Y)
# Draw rectangular contour plot
plt.contour(X, Y, Z, cmap='gist_rainbow_r');
- Polar Contour plot: For plotting polar contour plot we need to define first r and theta. Below is the sample code for plotting polar contour plots using matplotlib subplots.
Python3
# generate r and theta arrays
rad_arr = np.radians(np.linspace(0, 360, 20))
r_arr = np.arange(0, 1, .1)
# define function
def func(r, theta):
return r * np.sin(theta)
r, theta = np.meshgrid(r_arr, rad_arr)
# get the values of response variables
values = func(r,theta)
# plot the polar coordinates
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
ax.contourf(theta, r, values, cmap='Spectral_r')
plt.show()
Polar contour plot
- Ternary Contour Plot: Matplotlib does not provide a definitive API for plotting Ternary Contour plot, however, there are many other package which does that. IN this example, we will be using Plotly library.
Python3
# install & import plotly
! pip install plotly
import plotly.figure_factory as ff
# Define variables
a = np.array([0. , 0. , 0., 0., 1./3, 1./3, 1./3, 2./3, 2./3, 1.])
b = np.array([0., 1./3, 2./3, 1., 0., 1./3, 2./3, 0., 1./3, 0.])
c = 1 - a - b
# Define function that generates response variable
func = (a - 0.02) * b * (a - 0.5) * (b - 0.4) * (c - 1)**2
# plot ternary contour
fig = ff.create_ternary_contour(np.array([a, b, c]), func,
pole_labels=['a', 'b', 'c'],
interp_mode='cartesian',
colorscale='Viridis',)
fig.show()
Ternary Contour plot
References:
Similar Reads
Creating a Legend for a Contour Plot Contour plots are a powerful tool in data visualization, allowing researchers and analysts to represent complex data in a clear and concise manner. One crucial aspect of creating effective contour plots is the inclusion of a legend, which provides essential context and meaning to the visualized data
5 min read
Getting LaTeX into R Plots Data visualization is a cornerstone of exploratory data analysis, enabling analysts to effectively glean insights and communicate findings. Mathematical notation often accompanies visualizations in scientific and technical fields, elucidating complex relationships and phenomena. Understanding LaTeX
3 min read
Diagnostic Plots for Model Evaluation Model evaluation is a critical step in the lifecycle of any statistical or machine-learning model. Diagnostic plots play a crucial role in assessing the performance, assumptions, and potential issues of a model. In this comprehensive overview, we will delve into the theory behind diagnostic plots, t
9 min read
Violin Plot for Data Analysis Data visualization is instrumental in understanding and interpreting data trends. Various visualization charts aid in comprehending data, with the violin plot standing out as a powerful tool for visualizing data distribution. This article aims to explore the fundamentals, implementation, and interpr
8 min read
Violin Plot for Data Analysis Data visualization is instrumental in understanding and interpreting data trends. Various visualization charts aid in comprehending data, with the violin plot standing out as a powerful tool for visualizing data distribution. This article aims to explore the fundamentals, implementation, and interpr
8 min read
Violin Plot for Data Analysis Data visualization is instrumental in understanding and interpreting data trends. Various visualization charts aid in comprehending data, with the violin plot standing out as a powerful tool for visualizing data distribution. This article aims to explore the fundamentals, implementation, and interpr
8 min read