我正在尝试使用 numpy 绘制高斯函数。 函数是 z=exp(-(x2+y2)/10) 但我只得到一个 2D 函数
import numpy as np
from matplotlib import pyplot as plt
x=np.linspace(-10,10, num=100)
y=np.linspace(-10,10, num=100)
z=np.exp(-0.1*x**2-0.1*y**2)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(x,y,z)
我得到:
但我想获得:
我使用 numpy 因为我需要一组数据。
最佳答案
您需要获得正确的尺寸。这可以使用 meshgrid
来完成。另外,您想要的图是曲面图,而不是线框图(尽管您也可以这样做)。
# import for colormaps
from matplotlib import cm
x=np.linspace(-10,10, num=100)
y=np.linspace(-10,10, num=100)
x, y = np.meshgrid(x, y)
z = np.exp(-0.1*x**2-0.1*y**2)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x,y,z, cmap=cm.jet)
plt.show()
关于python - 如何使用 numpy 绘制 3D 高斯图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52653734/