【发布时间】:2022-01-02 09:34:09
【问题描述】:
我想从一个带有 x 和 y 的方程创建一个 3D 图,类似于 Google 的 3D 图。
一个例子:
输入:sin(sqrt(x**2 + y**2))
Z 显然等于给定的输入,但是如何计算 x 和 y?感谢您提供的任何帮助!
【问题讨论】:
标签: python python-3.x matplotlib 3d
我想从一个带有 x 和 y 的方程创建一个 3D 图,类似于 Google 的 3D 图。
一个例子:
输入:sin(sqrt(x**2 + y**2))
Z 显然等于给定的输入,但是如何计算 x 和 y?感谢您提供的任何帮助!
【问题讨论】:
标签: python python-3.x matplotlib 3d
您可以先为您的X 和Y 创建一个meshgrid。然后通过执行Z=np.sin(np.sqrt(X**2 + Y**2)) 计算您的Z。最后,您可以使用matplotlib函数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()
这段代码的输出给出:
【讨论】: