How to plot a plane using some mathematical equation in matplotlib?

To plot a plane using a mathematical equation in matplotlib, you need to create a 3D surface plot. This involves generating coordinate grids and applying the plane equation to create the z-coordinates.

Steps

  • Import necessary libraries (NumPy and Matplotlib)

  • Create x and y coordinate arrays using numpy.linspace()

  • Generate a meshgrid from x and y coordinates

  • Define the plane equation to calculate z values

  • Create a 3D subplot using projection='3d'

  • Plot the surface using plot_surface()

  • Display the plot with plt.show()

Basic Plane Equation

A plane can be represented by the equation ax + by + cz = d, which we can rearrange to z = (d - ax - by) / c ?

import numpy as np
import matplotlib.pyplot as plt

# Set figure size
plt.rcParams["figure.figsize"] = [10, 6]
plt.rcParams["figure.autolayout"] = True

# Create coordinate arrays
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)

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

# Define plane equation: z = 0.5x + 0.3y + 2
Z = 0.5 * X + 0.3 * Y + 2

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

# Plot the surface
ax.plot_surface(X, Y, Z, alpha=0.7, cmap='viridis')

# Add labels
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
ax.set_title('3D Plane: z = 0.5x + 0.3y + 2')

plt.show()

Different Plane Orientations

You can create planes with different orientations by changing the coefficients in the equation ?

import numpy as np
import matplotlib.pyplot as plt

# Create coordinate grid
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)

# Create subplots for different planes
fig = plt.figure(figsize=(15, 5))

# Horizontal plane: z = constant
ax1 = fig.add_subplot(131, projection='3d')
Z1 = np.ones_like(X) * 3  # z = 3
ax1.plot_surface(X, Y, Z1, alpha=0.6, color='red')
ax1.set_title('Horizontal Plane: z = 3')

# Tilted plane: z = x + y
ax2 = fig.add_subplot(132, projection='3d')
Z2 = X + Y
ax2.plot_surface(X, Y, Z2, alpha=0.6, color='green')
ax2.set_title('Tilted Plane: z = x + y')

# Steep plane: z = 2x - y + 1
ax3 = fig.add_subplot(133, projection='3d')
Z3 = 2 * X - Y + 1
ax3.plot_surface(X, Y, Z3, alpha=0.6, color='blue')
ax3.set_title('Steep Plane: z = 2x - y + 1')

plt.tight_layout()
plt.show()

Customizing the Plane Plot

You can enhance the visualization with colors, wireframes, and contour lines ?

import numpy as np
import matplotlib.pyplot as plt

# Create data
x = np.linspace(-8, 8, 80)
y = np.linspace(-8, 8, 80)
X, Y = np.meshgrid(x, y)
Z = 0.2 * X**2 - 0.1 * Y**2 + 3  # Saddle-shaped surface

# Create enhanced 3D plot
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')

# Plot surface with colormap
surface = ax.plot_surface(X, Y, Z, cmap='plasma', alpha=0.8)

# Add wireframe for better structure visibility
ax.plot_wireframe(X, Y, Z, color='black', alpha=0.3, linewidth=0.5)

# Add contour lines at the bottom
ax.contour(X, Y, Z, zdir='z', offset=Z.min()-1, cmap='plasma', alpha=0.6)

# Customize the plot
ax.set_xlabel('X axis', fontsize=12)
ax.set_ylabel('Y axis', fontsize=12)
ax.set_zlabel('Z axis', fontsize=12)
ax.set_title('Enhanced Plane Plot with Contours', fontsize=14)

# Add color bar
fig.colorbar(surface, shrink=0.5, aspect=10)

plt.show()

Key Parameters

Parameter Description Example
alpha Transparency (0-1) alpha=0.7
cmap Color map cmap='viridis'
linewidth Line thickness linewidth=0.5
projection Plot type projection='3d'

Conclusion

Use np.meshgrid() to create coordinate grids and plot_surface() to visualize mathematical planes in 3D. Customize with colormaps, transparency, and wireframes for better visualization.

Updated on: 2026-03-26T14:56:43+05:30

9K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements