Python中的颜色数组
在Python中,获取颜色数组的最快方法是什么?我想要一个可以索引的数组,方便在pylab绘图时作为“color=”参数使用。
我想到的最好方法是:
colors = [(random(),random(),random()) for i in range(10)]
不过,如果能有一个能生成间隔均匀的颜色(插值的?)的解决方案,那就更好了。
3 个回答
2
你可以简单地创建一个列表或者字典,把颜色添加进去。我不太清楚pylab是怎么工作的,但我找到一个例子,可能对你有帮助,在这里。
from pylab import *
cdict = {'red': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.7),
(1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.0),
(1.0, 1.0, 1.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.0),
(1.0, 0.5, 1.0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256)
pcolor(rand(10,10),cmap=my_cmap)
colorbar()
4
看起来,matplotlib 自带了几种内置的“颜色映射”。你可以通过 get_cmap() 来获取其中一种。
18
结果示例:
from random import randint
colors = []
for i in range(10):
colors.append('#%06X' % randint(0, 0xFFFFFF))
['#37AB65', '#3DF735', '#AD6D70', '#EC2504', '#8C0B90', '#C0E4FF', '#27B502', '#7C60A8', '#CF95D7', '#145JKH']
备注:感谢 @Inerdia