matplotlib.colors您正在寻找的模块。这提供了许多类来从值映射到颜色图值。
import matplotlibimport matplotlib.cm as cmlst = [1.9378076554115014, 1.2084586588892861, 1.2133096565896173, 1.2427632053442292, 1.1809971732733273, 0.91960143581348919, 1.1106310149587162, 1.1106310149587162, 1.1527004351293346, 0.87318084435885079, 1.1666132876686799, 1.1666132876686799]minima = min(lst)maxima = max(lst)norm = matplotlib.colors.Normalize(vmin=minima, vmax=maxima, clip=True)mapper = cm.ScalarMappable(norm=norm, cmap=cm.Greys_r)for v in lst: print(mapper.to_rgba(v))
一般方法是在数据中找到
minima和
maxima。使用它们创建一个
Normalize实例(其他规范化类可用,例如对数刻度)。接下来,
ScalarMappable使用
Normalize实例和所选的colormap创建一个。然后,您可以
mapper.to_rgba(v)用来
v通过标准化的比例将输入值映射到目标颜色。
for v in sorted(lst): print("%.4f: %.4f" % (v, mapper.to_rgba(v)[0]) )
产生输出:
0.8732: 0.00000.9196: 0.05011.1106: 0.28421.1106: 0.28421.1527: 0.33481.1666: 0.34691.1666: 0.34691.1810: 0.36321.2085: 0.38751.2133: 0.39161.2428: 0.42001.9378: 1.0000
如果需要,
matplotlib.colors
模块文档中有更多信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)