サーフェスに線を重ね合わせようとしていますが、小さな問題があります。ラインが見えないビューポイントもあります。たとえば、次のコードで生成されたサーフェスをプロットしてみてください。
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d, Axes3D
import pylab as p
import matplotlib.ticker as ticker
from matplotlib.colors import LightSource
vima=0.2
def fun(x, y):
return x**3 + y
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(0.1, 50, vima)
Y = np.arange(0.1, 10.2, vima)
X, Y = np.meshgrid(X, Y)
Z=fun(X,Y)
surf = ax.plot_surface(X, Y, Z,rstride=25, cstride=75, alpha=1, color='0.8', linewidth=0.2, shade=True)
Y=(10.0-0.2*X)/0.9798
Z=Z*0
ax.plot_surface(X,Y,Z)
ax.grid(on=True)
ax.view_init(elev=34,azim=-106)
Z=fun(X,Y)
ax.plot_surface(X,Y,Z)#, linewidth=1)
ax.w_xaxis.set_major_locator(ticker.NullLocator())
ax.w_yaxis.set_major_locator(ticker.NullLocator())
ax.w_zaxis.set_major_locator(ticker.NullLocator())
ax.set_xlabel('$x$')
ax.set_ylabel('$y$')
ax.set_zlabel('$z$')
fig.suptitle('b', fontsize=14)
plt.show()
最初に、表面、xy 平面上の線、および表面に重なった線が見えると仮定します。しかし、このプロットを回転すると、重なった線が見えない視点がいくつかあることがわかります。
この小さなバグを克服する方法はありますか?
前もって感謝します