python - 在python中生成渐变颜色

标签 python

给定 N 个桶,我想在彩虹上连续生成颜色(其中 n>=2):

enter image description here

例如,如果 n=2,颜色将是:

rgb(255,0,0) -->rgb(0,0,255)

如果 n=3,颜色将是:
rgb(255,0,0) --> rgb(0,255,0) --> rgb(0,0,255)

生成这些颜色代码的好方法是什么?

最佳答案

您的彩虹渐变将色调从 0 度平滑地变化到 240 度(纯蓝色的色调)。因此,它最容易使用,例如HSL 值而不是 RGB 值,因此您可以在保持饱和度和亮度不变的同时改变色调。

colorsys库允许在不同颜色空间之间进行转换,因此您可以使用它来根据需要沿彩虹渐变生成 RGB 值。 hls_to_rgb函数使用 0 到 1 之间的浮点值,所以 2/3是蓝色的色调,明亮的颜色应该具有0.5的亮度。和 1 的饱和度.

from colorsys import hls_to_rgb

def rainbow_color_stops(n=10, end=2/3):
    return [ hls_to_rgb(end * i/(n-1), 0.5, 1) for i in range(n) ]

结果是(r,g,b)的列表元组。

关于python - 在python中生成渐变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58811499/

相关文章:

python - 将 Flask 路由参数传递给装饰器

Python CSV Reader 仅限 JSON 的第一个字符

python - Tensorflow 1.5 构建失败 - 缺少路径?

python - 连接两个 NumPy 数组得到 "ValueError: all the input arrays must have same number of dimensions"

Python:我的函数在执行我想要的操作后返回 "None"

python - 如何更新 Anaconda?

python - Matplotlib:向 cartopy 图像添加颜色条

python - 对基类的行为感到困惑

python - Django 测试客户端与 django-pytest

python - 如何在 python 数据帧中的多个列之间执行 'OR'?