Как сделать 3D-гауссовский сюжет используя numpy? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь построить гауссовскую функцию, используя numpy.функция z = exp (- (x 2 + y 2) / 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, потому что мне нужен набор данных.

1 Ответ

0 голосов
/ 04 октября 2018

Вам необходимо получить правильные размеры.Это можно сделать с помощью 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...