Plotting a 3D surface from a list of tuples in matplotlib?


To plot a 3D surface from a list of tuples in matplotlib, we can take the following steps.

Steps

  • Set the figure size and adjust the padding between and around the subplots.

  • Make a list of tuples.

  • Get the x, y and z data points from the list of tuples.

  • Return the coordinate matrices from the coordinate vectors.

  • Get the h data points for the surface plot.

  • Create a new figure or activate an existing figure.

  • Get the current axis, 3d, of the figure.

  • Create a surface plot.

  • To display the figure, use Show() method.

Example

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# List of tuples
data = [(1, 3, 2), (3, 5, 2), (4, 7, 4), (8, 7, 4),
        (3, 6, 1), (3, 9, 0), (3, 9, 0)]

# Data points from the list of tuples
x, y, z = zip(*data)

x, y = np.meshgrid(x, y)

h = x ** 2 + y ** 2

fig = plt.figure()

# Get the current axis
ax = fig.gca(projection='3d')

# Surface plot
ax.plot_surface(x, y, h, cmap='plasma')

plt.show()

Output

It will produce the following output −

Updated on: 08-Oct-2021

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements