Matplotlib 3d: поверхность видна через рассеянные точки, несмотря на альфа = 1 - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь отобразить 3d точки и соответствующую плоскость линейной регрессии. Но, в зависимости от угла, некоторые точки либо видны четко, либо я вижу поверхность сквозь них, либо я их вообще не вижу, несмотря на то, что они находятся на верхней стороне каркаса. К сожалению, я не могу добавить больше изображений ... Что я могу сделать, чтобы сделать точки полностью непрозрачными и видимыми под любым углом, где они ближе к "кулачку"?

Существует соответствующий код:

def display_points(ax:Axes3D, X):

    edu, seniority, income = X.T
    s = ax.scatter(edu, seniority, income, c='red', alpha=1, depthshade=False)
    s.set_edgecolors = s.set_facecolors = lambda *args: None

def display_predictions(ax:Axes3D, xx1, xx2, model):
    X_grid = np.column_stack((xx1.ravel(), xx2.ravel()))

    zz = model.predict(X_grid).reshape(xx1.shape)
    ax.plot_wireframe(xx1, xx2, zz, alpha=1)

def display_perpendiculars(ax:Axes3D, X, y_true, y_pred):
    for x_row, y_t, y_p in zip(X, y_true, y_pred):
        x1, x2 = x_row
        ax.plot(xs=[x1, x1], ys=[x2, x2], zs=[y_t, y_p], color='black', alpha=0.5)

Изображение

...