Przezroczystość dla fabuły Poly3DCollection w matplotlib
Próbuję narysować kilka obiektów za pomocą fantastycznego pakietu Matplotlib dla Pythona. Obiekty te składają się z punktów zaimplementowanych za pomocąplt.scatter()
i zaimplementowane poprawkiPoly3DCollection
. Chciałbym mieć łatki z lekką przezroczystością, tak aby widoczne były punkty i krawędzie za łatami.
Tutaj kod i działka już wygenerowałem. Wygląda na to, że prawie tam jestem, po prostu brakuje mi przezroczystości. Co ciekawe, jeśli najpierw spiszęPloy3DCollection
a potemscatter
punkty, punkty można zobaczyć, ale nie krawędzie.
Czy ktoś ma dla mnie sugestię?
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = [0, 2, 1, 1]
y = [0, 0, 1, 0]
z = [0, 0, 0, 1]
vertices = [[0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3]]
tupleList = zip(x, y, z)
poly3d = [[tupleList[vertices[ix][iy]] for iy in range(len(vertices[0]))] for ix in range(len(vertices))]
ax.scatter(x,y,z)
ax.add_collection3d(Poly3DCollection(poly3d, facecolors='w', linewidths=1, alpha=0.5))
plt.show()