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 物件的引數