python - 将颜色图添加到 add_collection(3d 图中的表面)

标签 python 3d matplotlib color-mapping

我正在制作一个 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()

为什么这不起作用?

非常感谢。

最佳答案

你必须将 zip 转换成列表格式

list(zip(xp1,yp1,zp1)) 

关于python - 将颜色图添加到 add_collection(3d 图中的表面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13139805/

相关文章:

python - Python 中的广义距离变换

python - 关于管理完善工作流程的日志

html - Webkit 3D 透视错误

python - 如何按升序对条形图中的条形进行排序

python - 如何增加条形图上日期的 xticks/标签的频率?

python - 循环一列并删除字符 - Python Pandas

python - : possible?调用set_trace()时Pdb和Python的核心模块加载

java - 减少 JFrame 绘画中的延迟

c++ - 如何开始为学校项目进行 3D 模拟编程?

python - matplotlib:隐藏子图并用其他子图填充空间