График функции двух переменных с помощью matplotlib

Ника

Новичок
Пользователь
Окт 17, 2020
6
0
1
Python 3.8, Windows 10.
Подскажите, пожалуйста, как построить график функции двух переменных с помощью matplotlib?
 

regnor

Активный пользователь
Пользователь
Июл 7, 2020
168
33
28
график функции двух переменных это некоторая поверхность
пример построения графика функции z = x**2 - y**2 (гиперболический параболоид)
Python:
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')

x, y = np.meshgrid(np.linspace(-5, 5, 100), np.linspace(-5, 5, 100))
z = x ** 2 - y ** 2

ax.plot_surface(x, y, z)

plt.show()
 
Последнее редактирование:

Ника

Новичок
Пользователь
Окт 17, 2020
6
0
1
Код:
import numpy as np
import matplotlib.pyplot as plt
import math
e=2.7
fig=plt.figure()
ax=fig.add_subplot(1,1,1,projection="3d")
x,y=np.meshgrid(np.linspace(-5,5,100), np.linspace(-5,5,100))
z=math.log(x*y)*e**(x+y)
ax.plot_surface(x,y,z)
plt.show()
Пишу данный код. Выдаёт ошибку:
Traceback (most recent call last):
File "C:/Users/Lenovo/PycharmProjects/untitled2/тест.py", line 8, in <module>
z=math.log(x*y)*e**(x+y)
TypeError: only size-1 arrays can be converted to Python scalars

подскажите, пожалуйста, что не так?
 

regnor

Активный пользователь
Пользователь
Июл 7, 2020
168
33
28
Код:
import numpy as np
import matplotlib.pyplot as plt
import math
e=2.7
fig=plt.figure()
ax=fig.add_subplot(1,1,1,projection="3d")
x,y=np.meshgrid(np.linspace(-5,5,100), np.linspace(-5,5,100))
z=math.log(x*y)*e**(x+y)
ax.plot_surface(x,y,z)
plt.show()
Пишу данный код. Выдаёт ошибку:
Traceback (most recent call last):
File "C:/Users/Lenovo/PycharmProjects/untitled2/тест.py", line 8, in <module>
z=math.log(x*y)*e**(x+y)
TypeError: only size-1 arrays can be converted to Python scalars

подскажите, пожалуйста, что не так?
используйте функции из numpy, math не работает со скалярами
Python:
import numpy as np
import matplotlib.pyplot as plt

e = 2.7
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection="3d")

x, y = np.meshgrid(np.linspace(-5, 5, 100), np.linspace(-5, 5, 100))
z = np.log(x*y)*e**(x+y)

ax.plot_surface(x, y, z)

plt.show()
 
  • Мне нравится
Реакции: Ника

Форум IT Специалистов