我想从x和y的方程创建一个3D图,类似于Google的3D图。举个例子:输入:sin(sqrt(x**2 + y**2))输出(3D图):
sin(sqrt(x**2 + y**2))
Z显然等于给定的输入,但如何计算x和y?感谢您给予的任何帮助!
x
y
ego6inou1#
您可以先为X和Y创建一个meshgrid。然后通过执行Z=np.sin(np.sqrt(X**2 + Y**2))来计算Z。最后,您可以使用matplotlib函数ax.plot_surface(X, Y, Z)绘制曲面。你可以在下面找到代码:
X
Y
meshgrid
Z=np.sin(np.sqrt(X**2 + Y**2))
Z
ax.plot_surface(X, Y, Z)
import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D N_points=100 x = np.linspace(-10, 10, N_points) y = np.linspace(-10, 10, N_points) X, Y = np.meshgrid(x, y) Z=np.sin(np.sqrt(X**2 + Y**2)) fig = plt.figure() ax = fig.add_subplot(projection='3d') ax.plot_surface(X, Y, Z) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show()
这段代码的输出是:
1条答案
按热度按时间ego6inou1#
您可以先为
X
和Y
创建一个meshgrid
。然后通过执行Z=np.sin(np.sqrt(X**2 + Y**2))
来计算Z
。最后,您可以使用matplotlib函数ax.plot_surface(X, Y, Z)
绘制曲面。你可以在下面找到代码:
这段代码的输出是: