5

我正在制作一个 3 面金字塔 我已经使用 add_collection3d(Poly3DCollection

但我想添加一个基于 z 轴的颜色图,使顶部为红色,并逐渐变为蓝色,但细节无关紧要。我尝试了 cmap 选项,但这确实改变了颜色。

我在一侧添加了一个脚本来说明问题。

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

fig = plt.figure()
ax = Axes3D(fig)

#Pyramid side 1
xp1 = [1.1184,2.46,2.46]
yp1 = [0.5592, 1.23,2.73]
zp1 = [-1.5,0,-1.5]
verts1= [zip(xp1,yp1,zp1)]

cmhot = plt.cm.get_cmap("hot")
ax.add_collection3d(Poly3DCollection(verts1,cmap=cmhot))

ax.set_xlim(0,5)
ax.set_ylim(0,5)
ax.set_zlim(-2.5,5)
plt.show()

为什么这不起作用?

提前谢谢了。

4

1 回答 1

-1

You have to convert zip into list format

list(zip(xp1,yp1,zp1)) 
于 2019-07-10T10:58:42.927 回答