Bio.Graphics.ColorSpiral 模組
產生適用於區分分類資料的 RGB 色彩。
此模組提供一個類別,該類別實作了 HSV 色彩空間中的螺旋「路徑」,允許選擇該路徑上的多個點,並以 RGB 色彩空間傳回輸出,適用於 ReportLab 和其他圖形套件。
這種選擇顏色的方法受到 Bang Wong 的觀點文章《Color Coding》的啟發,發表於《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_init 和 v_final 之間沿圓柱體移動(在 V 空間中),以沿路徑給出 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 物件的引數