我正在尝试使用用于 Python 的神话般的 Matplotlib 包绘制一些对象。这些对象由用 实现的点和用 实现的plt.scatter()
补丁组成Poly3DCollection
。我希望补丁具有轻微的透明度,以便可以看到补丁后面的点和边缘。
这里是我已经生成的代码和绘图。似乎我快到了,只是缺少透明度的功能。有趣的是,如果我先绘制点,Ploy3DCollection
然后绘制scatter
点,可以看到点,但看不到边缘。
有人对我有建议吗?
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 = list(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()