(работает в Jupyter Notebooks)
Итак, когда я использую приведенный ниже код, я могу построить поверхность без ошибок:
# batch gradient descent setup
xInitialValue = 1.8
yInitialValue = 1.0
xyValuesArray = gradientDescent(xInitialValue, yInitialValue, xPartialDerivative, yPartialDerivative)
# plot gradient descent algorithm
# fig is a figure object (container) that holds data to represent the chart
fig = pyplot.figure(figsize = [15, 10])
# axis is a variable that holds the axis for 3D representation
# gca = get current axis
# axis -> x, y and z
axis = fig.gca(projection = '3d')
axis.plot_surface(xAxisValues,
yAxisValues,
costFunction(xAxisValues, yAxisValues),
cmap = colorMap.coolwarm,
alpha = 0.4)
# set the axis labels
axis.set_xlabel('x', fontsize = 21)
axis.set_ylabel('y', fontsize = 21)
axis.set_zlabel('z = costFunction(x, y)', fontsize = 21)
# show
pyplot.show()
Однако, когда я пытаюсь построить несколько точек на той же диаграмме, я получаю сообщение об ошибке:
# batch gradient descent setup
xInitialValue = 1.8
yInitialValue = 1.0
xyValuesArray = gradientDescent(xInitialValue, yInitialValue, xPartialDerivative, yPartialDerivative)
# plot gradient descent algorithm
# fig is a figure object (container) that holds data to represent the chart
fig = pyplot.figure(figsize = [15, 10])
# axis is a variable that holds the axis for 3D representation
# gca = get current axis
# axis -> x, y and z
axis = fig.gca(projection = '3d')
axis.plot_surface(xAxisValues,
yAxisValues,
costFunction(xAxisValues, yAxisValues),
cmap = colorMap.coolwarm,
alpha = 0.4)
axis.scatter(xyValuesArray[:, 0],
xyValuesArray[:, 1],
costFunction(xyValuesArray[:, 0], xyValuesArray[:, 1]),
s=50,
color='red')
# set the axis labels
axis.set_xlabel('x', fontsize = 21)
axis.set_ylabel('y', fontsize = 21)
axis.set_zlabel('z = costFunction(x, y)', fontsize = 21)
# show
pyplot.show()
Ошибка следующая:
ValueError: Invalid RGBA argument: masked_array(data=[1.0, 0.0, 0.0, 1.0],
mask=False,
fill_value='?',
dtype=object)
<Figure size 1080x720 with 1 Axes>
Что я делаю не так?
Заранее спасибо!
Если требуется больше контекста, я был бы рад предоставить это :)