python - 如何使用 numpy 绘制 3D 高斯图?

标签 python numpy plot gaussian normal-distribution

我正在尝试使用 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)

我得到:only obtain 2D gaussian [1]

但我想获得:obtained a 3D gaussian but using sympy[2]

我使用 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()

enter image description here

关于python - 如何使用 numpy 绘制 3D 高斯图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52653734/

相关文章:

python - Numpy:将数组转换为三角矩阵

python - 在类级别跟踪 Python 2.7.x 对象属性以快速构造 numpy 数组

r - 使用 abline(lm()) 时无法添加 axis() 进行绘图,为什么?

r - geom_point 在 geom_极地饼图(圆环图)图表的开头引入偏移

Python numpy 如何将这个数组/图像列表 reshape 为拼贴画?

python - 无法共享模块

python - 同步两个不同的进程同时开始

python - PyQt5/pyqt4 是否已经支持具有手写识别功能的 QtVirtualKeyboard?

r - 尝试在具有属性的 tmap shapefile 中绘制

Python:如果语句评估为真,则获取索引