作者:嘻嘻哈哈的二狗子 | 来源:互联网 | 2023-05-25 08:30
1> hitzg..:
您的问题的答案在您复制到问题中的文档的snipplet中给出:
...从区间[0,1]到RGBA颜色......
但如果你发现你的代码很难看,你可以试着让它变得更好:
您不必手动指定规范化的限制(如果您打算使用min/max):
norm = plt.Normalize()
colors = plt.cm.jet(norm(dz))
如果你发现那个丑陋(我不明白为什么),你可以继续手动操作):
colors = plt.cm.jet(np.linspace(0,1,len(dz)))
然而,这种解决方案仅限于等间距的颜色(这是您dz
在示例中给出的颜色).
然后你也可以复制Normalize
(因为你似乎不喜欢它)的功能:
lower = dz.min()
upper = dz.max()
colors = plt.cm.jet((dz-lower)/(upper-lower))
使用辅助函数:
def get_colors(inp, colormap, vmin=None, vmax=None):
norm = plt.Normalize(vmin, vmax)
return colormap(norm(inp))
现在您可以像这样使用它:
colors = get_colors(dz, plt.cm.jet)