python画立体的心_在python3中绘制三维多边形

我的拉链也有类似的问题。我支持这样一个论断,那就是Python2.x vs 3.x的东西。在

不过,我找到了一个明显有效的方法:from mpl_toolkits.mplot3d import Axes3D

from mpl_toolkits.mplot3d.art3d import Poly3DCollection

import matplotlib.pyplot as plt

fig = plt.figure()

ax = Axes3D(fig)

x = [0, 1, 1, 0]

y = [0, 0, 1, 1]

z = [0, 1, 0, 1]

verts = [list(zip(x, y, z))]

print(verts)

ax.add_collection3d(Poly3DCollection(verts), zs='z')

plt.show()

因此,我做了两个改变:替换了行:

from matplotlib.collections import Poly3DCollection

签署人:

from matplotlib.mplot3.art3d import Poly3DCollection。在

我不知道你的进口对帐单是从哪里来的,但我觉得它似乎不起作用

将行:verts = list(zip(x,y,z))改为verts =

[list(zip(x, y, z))]

不知何故,后者似乎奏效了。刚开始接触python之后,我无法给出一个铁板钉钉的解释。然而,这里什么都没有:Poly3DCollection类需要“collection”作为第一个输入参数,因此需要一个列表列表。在这种情况下,只给出一个列表,这被认为是遗漏了一个级别。通过添加另一个级别(通过[…]),它起作用了。在

我不知道这个解释是否有道理,但它很符合我的直觉;)

这些修改似乎起作用了,因为这段代码创建了所需的三维多边形(我注意到,由于这是我的第一篇文章,我不允许发布布丁图的证明…)在

希望这个有用

谨致问候

你可能感兴趣的:(python画立体的心)