Matplotlib 标记不可见

问题描述

我用 matplotlib 绘制了一个 3D 表面,我需要在上面添加一些点来表示梯度下降算法的步骤,但是标记没有正确显示

Not visible markers

从某些角度来看,它们几乎不可见,即使它们位于表面(或低于表面,它不会改变行为)。

但从其他人的角度来看,这些标记是可见的。

Visible markers

这是我的代码的一部分

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

K = 0.001

x = np.linspace(0,16,1000)
y = np.linspace(0,1000)
X,Y = np.meshgrid(x,y)
Z = f(X,Y)    # f() is a function omitted here

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


ax.plot_surface(X,Y,Z,cmap=cm.coolwarm_r)

path = []
x_g,y_g = 14,14
for i in range(10):
    path.append([x_g,y_g,f(x_g,y_g)])
    gradient_evaluated = gradient_val(x_g,y_g)
    x_g += gradient_evaluated[0]*K
    y_g += gradient_evaluated[1]*K

ax.plot([t[0] for t in path],[t[1] for t in path],[t[2]+1000 for t in path],markerfacecolor='r',markeredgecolor='r',marker='.',markersize=20)

plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)