Построение двух графиков в одной системе координат matplotlib 3D
Хочу показать наглядно метод градиентного спуска по точкам. Строю поверхность, затем строю в той же системе координат набор точек(для примера просто задаю массив через np.arange как для x, так и для y). Построение поверхности и набора точек проходит успешно, однако на графике точки видны только с внешней стороны поверхности, а с внутренней стороны видны только их очертания. Код выглядит так:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.use("TkAgg")
def f(x, y):
return (x ** 2 + 2 * y ** 2 + 1) + x - np.log(1 + x ** 2 + 2 * x * y + 3 * y ** 2)
x, y = np.mgrid[-5:5:50j, -5:5:50j]
z = f(x, y)
color = 'bone'
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap=color)
x_d = np.arange(-3, 0, 0.5)
y_d = np.arange(-3, 0, 0.5)
z_d = f(x_d, y_d)
ax.plot3D(x_d, y_d, z_d, marker='o', lw=1.5, color='red')
ax.view_init(30, 20)
plt.show()
Подскажите, пожалуйста, что может быть не так?

