我希望在matplotlib中为polycollection生成线性渐变。我有以下代码,给我一个块颜色
v = []
for k in range(0, len(xs) - 1):
x = [xs[k], xs[k+1], xs[k+1], xs[k]]
y = [ys[k], ys[k+1], ys[k+1], ys[k]]
z = [zs[k], zs[k+1], h, h]
v.append(zip(x, y, z))
poly3dCollection = Poly3DCollection(v, facecolor='yellow', edgecolors='none')
我玩过彩色地图和插值,但我似乎无法以我想要的方式工作。具体来说,我需要一个基于我提供的灰度值的线性渐变(所以没有默认的喷射颜色方案)。梯度可以设置一次,即每个多边形的顶部x%为黑色,然后是相同x%的各种灰度,而不是需要为每个多边形动态计算。
我确实通过保存到SVG并手动编辑图像来获得我想要的效果,但我需要在代码中完成所有操作。
我觉得这应该是非常直接的,所以我不确定我缺少什么