Отображение scatter3D над поверхностью (plot_trisurf), zorder не работает - PullRequest
1 голос
/ 26 февраля 2020

Я пытаюсь добавить точку на поверхности, отображаемой с помощью plot_trisurf. Точка присутствует, но, кажется, нарисована перед поверхностью, так что единственный способ ее увидеть - сделать поверхность прозрачной. Мне бы хотелось, чтобы эта точка появлялась на поверхности, даже если поверхность не прозрачная. Есть ли у вас какие-либо идеи о том, как это сделать?

Примером проблемы может быть следующий:

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

Latitude = np.repeat(np.linspace(45.1525, 45.17, 1000), 15)
Longitude = np.array(list(np.linspace(5.9, 5.94, 1000))*15)
x = np.linspace(0,3,len(Latitude))
Altitude = np.sin(x)*np.cos(x**2)

fig = plt.figure(figsize=(15, 9))
ax = fig.gca(projection="3d")
ax.view_init(30, 250)
surf = ax.plot_trisurf(
    Latitude,
    Longitude,
    Altitude,
    cmap=plt.cm.jet,
    linewidth=0,
    alpha=0.2,
    edgecolor=None,
    antialiased=False,
)

s = ax.scatter(
    Latitude[10600],
    Longitude[10600],
    Altitude[10600],
    c="black",
    marker="*",
    s=100,
    depthshade=False,
)
plt.title((Latitude[10600], Longitude[10600], Altitude[10600]))
plt.show()

Я также пробовал с scatter3D и немного увеличив высоту точка относительно поверхности, но ничего не получилось.

Большое спасибо за вашу помощь!

...