Bio.Graphics.ColorSpiral 模块
生成适用于区分分类数据的 RGB 颜色。
此模块提供一个类,该类实现了一个穿过 HSV 颜色空间的螺旋“路径”,允许沿该路径选择多个点,并将输出以 RGB 颜色空间返回,适用于 ReportLab 和其他图形包。
这种颜色选择方法的灵感来自于 Bang Wong 的观点文章:颜色编码,在 Nature Methods _7_ 573 (https://doi.org/10.1038/nmeth0810-573) 中。
该模块还提供了辅助函数,这些函数返回颜色列表,或颜色字典(如果传递了包含要着色的类别名称的可迭代对象)。
- class Bio.Graphics.ColorSpiral.ColorSpiral(a=1, b=0.33, v_init=0.85, v_final=0.5, jitter=0.05)
基类:
object
实现一条穿过 HSV 颜色空间的螺旋路径。
此类提供了沿穿过 HSV 颜色空间的对数螺旋路径采样点的函数。
螺旋由 r = a * exp(b * t) 描述,其中 r 是从 HSV 圆柱体的轴到螺旋当前点的距离,t 是螺旋旋转到当前点所经过的角度。a 和 b 是(正实数)参数,控制着螺旋的形状。
a:螺旋的起始方向
b:螺旋绕轴旋转的圈数
我们允许螺旋沿圆柱体(“在 V 空间中”)在 v_init 和 v_final 之间移动,以在路径上产生 V(本质上是亮度)的渐变,其中 v_init、v_final 在 [0,1] 中。
还可以提供亮度“抖动”作为 V 空间中的绝对值,以帮助区分路径上的连续颜色点。
- __init__(a=1, b=0.33, v_init=0.85, v_final=0.5, jitter=0.05)
初始化一条穿过 HSV 颜色空间的对数螺旋路径。
- 参数
a - 螺旋的参数 a,控制初始螺旋方向。a > 0
b - 螺旋的参数 b,控制螺旋绕轴旋转的速度。b > 0
v_init - 螺旋的 V(亮度)的初始值。v_init 在 [0,1] 中
v_final - 螺旋的 V(亮度)的最终值。v_final 在 [0,1] 中
jitter - 要添加到每个选定颜色的 V(亮度)抖动的程度。抖动量将从 [-jitter, jitter] 的均匀随机分布中选择,而 V 将保持在 [0,1] 中。
- get_colors(k, offset=0.1)
在螺旋上均匀间隔地生成 k 种不同的 RBG 颜色。
一个生成器,返回在定义的 HSV 空间螺旋中沿 k 个均匀间隔的点返回的 RGB 颜色空间值。
- 参数
k - 要返回的点数
offset - 从螺旋路径的哪个位置开始。
- property a
控制初始螺旋方向的参数(a > 0)
- property b
控制螺旋绕轴旋转速度的参数(b > 0)
- property v_init
螺旋的 V(亮度)的初始值(范围 0 到 1)
- property v_final
螺旋的 V(亮度)的最终值(范围 0 到 1)
- property jitter
要添加到每个颜色的 V(亮度)抖动的程度(范围 0 到 1)
- Bio.Graphics.ColorSpiral.get_colors(k, **kwargs)
返回 ColorSpiral 对象选择的 k 种颜色,作为一个生成器。
- 参数
k - 要返回的颜色数
kwargs - 传递给 ColorSpiral 对象的参数
- Bio.Graphics.ColorSpiral.get_color_dict(l, **kwargs)
使用提供的值作为键返回颜色字典。
返回一个字典,以可迭代对象 l 的成员作为键,为每个成员分配一种颜色。
- 参数
l - 表示要着色的类的可迭代对象
kwargs - 传递给 ColorSpiral 对象的参数