我想以(r,g,b)元组的形式生成一个颜色规范列表,它跨越整个颜色光谱,并包含任意多个条目。因此,对于5个条目,我希望如下所示:
F211
当然,如果有比0和1组合更多的条目,它应该使用分数,等等。这样做的最好方法是什么?
发布于 2009-05-18 09:29:59
使用HSV/HSB/HSL颜色空间(三个名称或多或少相同的东西)。生成N个在色调空间中均匀分布的元组,然后将它们转换为RGB。
示例代码:
import colorsys
N = 5
HSV_tuples = [(x*1.0/N, 0.5, 0.5) for x in range(N)]
RGB_tuples = map(lambda x: colorsys.hsv_to_rgb(*x), HSV_tuples)
发布于 2018-03-06 21:51:34
调色板很有趣。你知道吗,同样的亮度,比方说绿色,比起红色,被感知得更强烈?看看http://poynton.ca/PDFs/ColorFAQ.pdf吧。如果您想使用预配置的调色板,请查看seaborn's palettes
import seaborn as sns
palette = sns.color_palette(None, 3)
从当前调色板生成3种颜色。
发布于 2017-11-09 12:50:29
遵循kquinn's和jhrf的步骤:)
对于Python 3,可以通过以下方式完成:
def get_N_HexCol(N=5):
HSV_tuples = [(x * 1.0 / N, 0.5, 0.5) for x in range(N)]
hex_out = []
for rgb in HSV_tuples:
rgb = map(lambda x: int(x * 255), colorsys.hsv_to_rgb(*rgb))
hex_out.append('#%02x%02x%02x' % tuple(rgb))
return hex_out
https://stackoverflow.com/questions/876853
复制相似问题