我很难找到一种将数字向量转换为"好"色标(ala matplotlib)的方法,这样我就可以只获得颜色值的向量。这对于在django中呈现一些静态html页面非常有用。有什么想法吗?
谢谢大家的回答!真的很有帮助!
您可以使用以下代码:
from __future__ import division
import numpy
import matplotlib.cm as cmap
r = numpy.random.rand(1000) #random numbers
c = cmap.jet(numpy.int_((r-r.min())/r.ptp()*255)) #colors
所以你试试:
>>> r
array([ 0.88741281, 0.61022571, 0.14819983, 0.3695846 , 0.73832029,
0.6266069 , 0.6917337 , 0.09162752, 0.83532511, 0.54001574, ...,])
>>> c
array([[ 1. , 0.08787219, 0. , 1. ],
[ 0.83175206, 1. , 0.13598988, 1. ],
[ 0. , 0.08039216, 1. , 1. ],
...,
[ 0. , 0.72352941, 1. , 1. ],
[ 0.24984187, 1. , 0.71790006, 1. ],
[ 1. , 0.45098039, 0. , 1. ]])
其是RGBA格式的每一行的颜色。
您还可以查看ColorConverter。它提供了一些将有效的matplotlib颜色转换为RGB或RGBA的方法。
有效的matplotlib颜色为
- 来自"rgbcmykw"集的一封信
- 十六进制颜色字符串,如"#00FFFF"
- 一个标准名称,如"aqua"一个float,如"0.4",表示灰色
- 0-1级