Source code for surface
# -*- coding: utf-8 -*-
r"""Plot a surface in three-dimensions.
"""
import numpy as np
import matplotlib.pyplot as plt
[docs]
def surface(z, x_range, y_range):
r"""Plot a surface in three-dimensions.
:param z: The function that represents the surface.
If you have the equation of the figure in the form
.. math::
F(x, y, z) = 0,
You should first re-write it into the form
.. math::
z(x, y) = 0.
:param x_range: The range of :math:`x`-coordinates.
:param y_range: The range of :math:`y`-coordinates.
"""
ax = plt.figure().add_subplot(projection='3d')
x_linspace = np.linspace(x_range[0], x_range[1], 100)
y_linspace = np.linspace(y_range[0], y_range[1], 100)
meshgrid = np.meshgrid(x_linspace, y_linspace)
z = z(*meshgrid)
ax.plot_surface(*meshgrid, z, cmap="coolwarm", linewidth=0)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
if __name__ == '__main__':
def z(x, y):
return np.sin(2 * np.pi * x) * np.cos(2 * np.pi * y)
surface(z, [0, 1], [0, 1])