Python中的颜色数组

5 投票
3 回答
47814 浏览
提问于 2025-04-17 04:39

在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

撰写回答