Итак, я строю трехмерную диаграмму, и я создал функцию стоимости и некоторые данные, используя 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, но все равно он дает ошибку типа, и я понятия не имею, почему. Заранее спасибо.