Matplotlib 3D Surface and Contour Plotting

PythonPythonBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

This lab demonstrates how to create a 3D surface plot and project contour 'profiles' onto the walls of the graph using Matplotlib.

VM Tips

After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.

Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.

If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("`Python`")) -.-> python/BasicConceptsGroup(["`Basic Concepts`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/BasicConceptsGroup(["`Basic Concepts`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/AdvancedPlottingGroup(["`Advanced Plotting`"]) matplotlib(("`Matplotlib`")) -.-> matplotlib/SpecializedPlotsGroup(["`Specialized Plots`"]) python(("`Python`")) -.-> python/ControlFlowGroup(["`Control Flow`"]) python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/ModulesandPackagesGroup(["`Modules and Packages`"]) python(("`Python`")) -.-> python/PythonStandardLibraryGroup(["`Python Standard Library`"]) python(("`Python`")) -.-> python/DataScienceandMachineLearningGroup(["`Data Science and Machine Learning`"]) python(("`Python`")) -.-> python/FunctionsGroup(["`Functions`"]) python/BasicConceptsGroup -.-> python/comments("`Comments`") matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("`Importing Matplotlib`") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("`Understanding Figures and Axes`") matplotlib/AdvancedPlottingGroup -.-> matplotlib/3d_plots("`3D Plots`") matplotlib/SpecializedPlotsGroup -.-> matplotlib/contour_plots("`Contour Plots`") python/BasicConceptsGroup -.-> python/variables_data_types("`Variables and Data Types`") python/ControlFlowGroup -.-> python/for_loops("`For Loops`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/ModulesandPackagesGroup -.-> python/importing_modules("`Importing Modules`") python/ModulesandPackagesGroup -.-> python/using_packages("`Using Packages`") python/PythonStandardLibraryGroup -.-> python/data_collections("`Data Collections`") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("`Data Visualization`") python/FunctionsGroup -.-> python/build_in_functions("`Build-in Functions`") subgraph Lab Skills python/comments -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} matplotlib/importing_matplotlib -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} matplotlib/figures_axes -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} matplotlib/3d_plots -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} matplotlib/contour_plots -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/variables_data_types -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/for_loops -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/tuples -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/importing_modules -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/using_packages -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/data_collections -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/data_visualization -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} python/build_in_functions -.-> lab-48624{{"`Matplotlib 3D Surface and Contour Plotting`"}} end

Import necessary libraries

In this step, we will import the necessary libraries for creating the 3D surface plot and projecting contour profiles.

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

Create 3D figure and data

In this step, we will create a 3D figure and get test data for the surface plot.

## Create a 3D figure
fig = plt.figure()
ax = fig.add_subplot(projection='3d')

## Get test data for the surface plot
X, Y, Z = axes3d.get_test_data(0.05)

Plot the 3D surface

In this step, we will plot the 3D surface with the test data and customize the appearance of the plot.

## Plot the 3D surface
ax.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.3)

## Customize the appearance of the plot
ax.set(xlim=(-40, 40), ylim=(-40, 40), zlim=(-100, 100), xlabel='X', ylabel='Y', zlabel='Z')

Project contour profiles onto the walls of the graph

In this step, we will project contour profiles onto the walls of the graph by plotting the contours for each dimension with appropriate offsets.

## Plot projections of the contours for each dimension
ax.contour(X, Y, Z, zdir='z', offset=-100, cmap='coolwarm')
ax.contour(X, Y, Z, zdir='x', offset=-40, cmap='coolwarm')
ax.contour(X, Y, Z, zdir='y', offset=40, cmap='coolwarm')

Display the plot

In this step, we will display the 3D surface plot with projected contour profiles.

plt.show()

Summary

This lab demonstrated how to create a 3D surface plot and project contour profiles onto the walls of the graph using Matplotlib. The steps included importing necessary libraries, creating a 3D figure and data, plotting the 3D surface, projecting contour profiles, and displaying the plot.

Other Python Tutorials you may like