Неподвижный тип: 'numpy .ndarray' при построении 3D-диаграммы - PullRequest
0 голосов
/ 11 марта 2020

Итак, я строю трехмерную диаграмму, и я создал функцию стоимости и некоторые данные, используя numpy, но когда я на самом деле пытаюсь построить данные на диаграмме, я получаю ошибку unhashable type: 'numpy.ndarray'. Я все еще новичок, и я ничего не понимаю об ошибке.

Ниже приведен мой исходный код:

def f(x, y):
    r = 3**{-x**2 - y**2}
    return 1 / r + 1
# Make data for x and y 

x_4 = np.linspace(start = -2, stop = 2, num = 200)
y_4 = np.linspace(start = -2, stop = 2, num = 200)


x_4, y_4 = np.meshgrid(x_4, y_4)

# Creating a 3D chart

fig = plt.figure(figsize = [16, 12])
ax = fig.gca(projection='3d')

ax.plot_surface(x_4, y_4, f(x_4, y_4))

plt.show()

И вот ошибка, которую я получаю:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-bd526ad2cdcb> in <module>
      4 ax = fig.gca(projection='3d')
      5 
----> 6 ax.plot_surface(x_4, y_4, f(x_4, y_4))
      7 
      8 plt.show()

<ipython-input-24-a27a21ef332f> in f(x, y)
      1 def f(x, y):
----> 2     r = 3**{-x**2 - y**2}
      3     return 1 / r + 1

TypeError: unhashable type: 'numpy.ndarray'

Я даже изменил тип массива на 2D, но все равно он дает ошибку типа, и я понятия не имею, почему. Заранее спасибо.

1 Ответ

0 голосов
/ 11 марта 2020

Запись r = 3**(-x**2 - y**2). {...} будет set.

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