How do you make a 3d plot in python?

Matplotlib was introduced keeping in mind, only two-dimensional plotting. But at the time when the release of 1.0 occurred, the 3d utilities were developed upon the 2d and thus, we have 3d implementation of data available today! The 3d plots are enabled by importing the mplot3d toolkit. In this article, we will deal with the 3d plots using matplotlib.
Example: 
 

Python3

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax = plt.axes(projection ='3d')

Output:
 

How do you make a 3d plot in python?

With the above syntax three -dimensional axes are enabled and data can be plotted in 3 dimensions. 3 dimension graph gives a dynamic approach and makes data more interactive. Like 2-D graphs, we can use different ways to represent 3-D graph. We can make a scatter plot, contour plot, surface plot, etc. Let’s have a look at different 3-D plots.
 

Plotting 3-D Lines and Points

Graph with lines and point are the simplest 3 dimensional graph. ax.plot3d and ax.scatter are the function to plot line and point graph respectively.
Example 1: 3 dimensional line graph 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax = plt.axes(projection ='3d')

z = np.linspace(0, 1, 100)

x = z * np.sin(25 * z)

y = z * np.cos(25 * z)

ax.plot3D(x, y, z, 'green')

ax.set_title('3D line plot geeks for geeks')

plt.show()

Output:
 

How do you make a 3d plot in python?

Example 2: 3 dimensional scattered graph 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax = plt.axes(projection ='3d')

z = np.linspace(0, 1, 100)

x = z * np.sin(25 * z)

y = z * np.cos(25 * z)

c = x + y

ax.scatter(x, y, z, c = c)

ax.set_title('3d Scatter plot geeks for geeks')

plt.show()

Output:
 

How do you make a 3d plot in python?

Plotting Surface graphs and Wireframes

Surface graph and Wireframes graph work on gridded data. They take grid value and plot it on three-dimensional surface.
Example 1: Surface graph 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

x = np.outer(np.linspace(-2, 2, 10), np.ones(10))

y = x.copy().T

z = np.cos(x ** 2 + y ** 3)

fig = plt.figure()

ax = plt.axes(projection ='3d')

ax.plot_surface(x, y, z, cmap ='viridis', edgecolor ='green')

ax.set_title('Surface plot geeks for geeks')

plt.show()

Output:
 

How do you make a 3d plot in python?

Example 2: Wireframes 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

def f(x, y):

    return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-1, 5, 10)

y = np.linspace(-1, 5, 10)

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

Z = f(X, Y)

fig = plt.figure()

ax = plt.axes(projection ='3d')

ax.plot_wireframe(X, Y, Z, color ='green')

ax.set_title('wireframe geeks for geeks');

Output:
 

How do you make a 3d plot in python?

Plotting Contour Graphs

Contour graph takes all the input data in two-dimensional regular grids, and the Z data is evaluated at every point.We use ax.contour3D function to plot a contour graph.
Example: 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

def f(x, y):

    return np.sin(np.sqrt(x ** 2 + y ** 3))

x = np.linspace(-1, 5, 10)

y = np.linspace(-1, 5, 10)

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

Z = f(X, Y)

fig = plt.figure()

ax = plt.axes(projection ='3d')

ax.contour3D(X, Y, Z)

Output:
 

How do you make a 3d plot in python?

Plotting Surface Triangulations

The above graph is sometimes overly restricted and inconvenient. So by this method, we use a set of random draws. The function ax.plot_trisurf is used to draw this graph. It is not that clear but more flexible.
Example: 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

theta = 2 * np.pi * np.random.random(100)

r = 6 * np.random.random(100)

x = np.ravel(r * np.sin(theta))

y = np.ravel(r * np.cos(theta))

z = f(x, y)

ax = plt.axes(projection ='3d')

ax.scatter(x, y, z, c = z, cmap ='viridis', linewidth = 0.25);

ax = plt.axes(projection ='3d')

ax.plot_trisurf(x, y, z, cmap ='viridis', edgecolor ='green');

Output:
 

How do you make a 3d plot in python?

Plotting Möbius strip

Möbius strip also called the twisted cylinder, is a one-sided surface without boundaries. To create the Möbius strip think about its parameterization, it’s a two-dimensional strip, and we need two intrinsic dimensions. Its angle range from 0 to 2 pie around the loop and width ranges from -1 to 1.
Example: 
 

Python3

from mpl_toolkits import mplot3d

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.tri import Triangulation

theta = np.linspace(0, 2 * np.pi, 10)

w = np.linspace(-1, 5, 8)

w, theta = np.meshgrid(w, theta)

phi = 0.5 * theta

r = 1 + w * np.cos(phi)

x = np.ravel(r * np.cos(theta))

y = np.ravel(r * np.sin(theta))

z = np.ravel(w * np.sin(phi))

tri = Triangulation(np.ravel(w), np.ravel(theta))

ax = plt.axes(projection ='3d')

ax.plot_trisurf(x, y, z, triangles = tri.triangles,

                cmap ='viridis', linewidths = 0.2);

Output:
 

How do you make a 3d plot in python?


Can we plot 3D plot in Python?

We can create 3D plots in Python thanks to the mplot3d toolkit in the matplotlib library. Matplotlib was introduced with only 2D plots in mind. However, as of the 1.0 release, 3D utilities were developed on top of 2D, so 3D implementations of data are available today.

How do you plot a 3D surface plot in Python?

Creating 3D surface Plot The axes3d present in Matplotlib's mpl_toolkits. mplot3d toolkit provides the necessary functions used to create 3D surface plots. Surface plots are created by using ax. plot_surface() function.

How do you draw a 3D plane in Python?

Set the figure size and adjust the padding between and around the subplots..
Create x and y data points using numpy..
Using x and y, find the equation of the plane (eq)..
Create a new figure or activate an existing figure..
Get the current axis with projection='3d'..
Create a surface plot with x, y and eq data points..