bokeh.palettes#

提供用于颜色映射的调色板集合。

在 Bokeh 的上下文中,调色板 是一个简单的纯 Python 列表,其中包含 (十六进制) RGB 颜色字符串。例如,Blues8 调色板看起来像 ,定义为

('#084594', '#2171b5', '#4292c6', '#6baed6', '#9ecae1', '#c6dbef', '#deebf7', '#f7fbff')

此模块包含以下调色板集

  • 所有 ColorBrewer 调色板

  • 分类 D3 调色板

  • The Matplotlib 调色板 Magma、Inferno、Plasma 和 Viridis

  • 一个由 Bokeh 快门徽标颜色组成的 Bokeh 调色板

  • 专为色觉障碍用户设计的调色板

此外,如果安装了外部 colorcet 包,您还可以使用任何 256 色感知均匀的 Bokeh 调色板。


每个预构建的调色板都作为模块属性可用,例如 bokeh.palettes.YlGn3bokeh.palettes.Viridis256。每个预构建调色板的名称可以在 __palettes__ 模块属性中找到。

还有一些函数,例如 magma()viridis(),可以从特殊的大型调色板中生成任意大小的颜色列表。

Brewer 调色板也按名称在 brewer 字典中收集和分组,例如:brewer['Spectral'][6]。类似地,还有属性 d3mpltol,它们具有与这些调色板组相对应的字典。

最后,所有调色板都收集在 all_palettes 调色板模块属性中,“小型”调色板(即不包括具有 256 色的调色板)收集在 small_palettes 属性中。

内置调色板#

Matplotlib 调色板#

Bokeh 包含 Matplotlib 调色板 Magma、Inferno、Plasma、Viridis 和 Cividis。本节展示了此组中预定义的小型调色板。这些调色板也有大型 256 色版本,在下面的 大型调色板 部分中展示。

Cividis

3
4
5
6
7
8
9
10
11

Inferno

3
4
5
6
7
8
9
10
11

Magma

3
4
5
6
7
8
9
10
11

Plasma

3
4
5
6
7
8
9
10
11

Viridis

3
4
5
6
7
8
9
10
11

D3 调色板#

Bokeh 包含来自 D3 的分类调色板,如下所示

Category10

3
4
5
6
7
8
9
10

Category20

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Category20b

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Category20c

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Brewer 调色板#

Bokeh 包含所有 ColorBrewer 调色板,如下所示

Accent

3
4
5
6
7
8

Blues

3
4
5
6
7
8
9

BrBG

3
4
5
6
7
8
9
10
11

BuGn

3
4
5
6
7
8
9

BuPu

3
4
5
6
7
8
9

Dark2

3
4
5
6
7
8

GnBu

3
4
5
6
7
8
9

Greens

3
4
5
6
7
8
9

Greys

3
4
5
6
7
8
9

OrRd

3
4
5
6
7
8
9

Oranges

3
4
5
6
7
8
9

PRGn

3
4
5
6
7
8
9
10
11

Paired

3
4
5
6
7
8
9
10
11
12

Pastel1

3
4
5
6
7
8
9

Pastel2

3
4
5
6
7
8

PiYG

3
4
5
6
7
8
9
10
11

PuBu

3
4
5
6
7
8
9

PuBuGn

3
4
5
6
7
8
9

PuOr

3
4
5
6
7
8
9
10
11

PuRd

3
4
5
6
7
8
9

Purples

3
4
5
6
7
8
9

RdBu

3
4
5
6
7
8
9
10
11

RdGy

3
4
5
6
7
8
9
10
11

RdPu

3
4
5
6
7
8
9

RdYlBu

3
4
5
6
7
8
9
10
11

RdYlGn

3
4
5
6
7
8
9
10
11

Reds

3
4
5
6
7
8
9

Set1

3
4
5
6
7
8
9

Set2

3
4
5
6
7
8

Set3

3
4
5
6
7
8
9
10
11
12

Spectral

3
4
5
6
7
8
9
10
11

YlGn

3
4
5
6
7
8
9

YlGnBu

3
4
5
6
7
8
9

YlOrBr

3
4
5
6
7
8
9

YlOrRd

3
4
5
6
7
8
9

Bokeh 调色板#

Bokeh 自己的调色板,由快门徽标颜色组成

Bokeh

3
4
5
6
7
8

无障碍调色板#

Bokeh 包含一些对解决色觉障碍有用的调色板,其中包含 Paul Tol 的配色方案 以及来自 https://jfly.uni-koeln.de/color/#palletColorblind

Bright

3
4
5
6
7

BuRd

3
4
5
6
7
8
9

HighContrast

3

Iridescent

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

Light

3
4
5
6
7
8
9

MediumContrast

3
4
5
6

Muted

3
4
5
6
7
8
9

Sunset

3
4
5
6
7
8
9
10
11

TolPRGn

3
4
5
6
7
8
9

TolRainbow

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

TolYlOrBr

3
4
5
6
7
8
9

Vibrant

3
4
5
6
7

Colorblind

3
4
5
6
7
8

以下调色板也在 Paul Tol 的配色方案 中引入,但使用方式不同。 PaleTextBackground 应用于黑色文本的背景。 DarkText 用于白色背景上的文本本身。其理念是使用一种深色作为支持,而不是全部组合,也不仅用于一个单词。

PaleTextBackground:

DarkText:

大型调色板#

除了上面显示的所有在 small_palettes 属性中可用的调色板之外,bokeh.palettes 模块还有一些具有 256 色的大型调色板。这些调色板如下所示

Greys256:

(brewer)

Inferno256:

(mpl)

Magma256:

(mpl)

Plasma256:

(mpl)

Viridis256:

(mpl)

Cividis256:

(mpl)

Turbo256:

(mpl)

外部的 colorcet 包中提供了许多其他 256 色感知一致调色板。

其他属性#

除了上面部分中描述的所有调色板之外,bokeh.palettes 模块中还有一些值得注意的属性

__palettes__#

该模块中所有单个调色板名称的字母顺序列表。

例如,前八个调色板名称是

>>> bp.__palettes__[:8]
('Accent3', 'Accent4', 'Accent5', 'Accent6', 'Accent7', 'Accent8', 'Blues3', 'Blues4')

注意

所有调色板的完整列表也作为枚举从 bokeh.core.enums 中提供

Palette = Enumeration(Accent3, Accent4, Accent5, A .... Rd5, YlOrRd6, YlOrRd7, YlOrRd8, YlOrRd9)
查看所有值
Enumeration(Accent3, Accent4, Accent5, Accent6, Accent7, Accent8,

    Blues3, Blues4, Blues5, Blues6, Blues7, Blues8, Blues9, Blues256,

    Bokeh3, Bokeh4, Bokeh5, Bokeh6, Bokeh7, Bokeh8, BrBG3, BrBG4,

    BrBG5, BrBG6, BrBG7, BrBG8, BrBG9, BrBG10, BrBG11, Bright3,

    Bright4, Bright5, Bright6, Bright7, BuGn3, BuGn4, BuGn5, BuGn6,

    BuGn7, BuGn8, BuGn9, BuPu3, BuPu4, BuPu5, BuPu6, BuPu7, BuPu8,

    BuPu9, BuRd3, BuRd4, BuRd5, BuRd6, BuRd7, BuRd8, BuRd9,

    Category10_3, Category10_4, Category10_5, Category10_6,

    Category10_7, Category10_8, Category10_9, Category10_10,

    Category20_3, Category20_4, Category20_5, Category20_6,

    Category20_7, Category20_8, Category20_9, Category20_10,

    Category20_11, Category20_12, Category20_13, Category20_14,

    Category20_15, Category20_16, Category20_17, Category20_18,

    Category20_19, Category20_20, Category20b3, Category20b4,

    Category20b5, Category20b6, Category20b7, Category20b8,

    Category20b9, Category20b10, Category20b11, Category20b12,

    Category20b13, Category20b14, Category20b15, Category20b16,

    Category20b17, Category20b18, Category20b19, Category20b20,

    Category20c3, Category20c4, Category20c5, Category20c6,

    Category20c7, Category20c8, Category20c9, Category20c10,

    Category20c11, Category20c12, Category20c13, Category20c14,

    Category20c15, Category20c16, Category20c17, Category20c18,

    Category20c19, Category20c20, Cividis3, Cividis4, Cividis5,

    Cividis6, Cividis7, Cividis8, Cividis9, Cividis10, Cividis11,

    Cividis256, Colorblind3, Colorblind4, Colorblind5, Colorblind6,

    Colorblind7, Colorblind8, Dark2_3, Dark2_4, Dark2_5, Dark2_6,

    Dark2_7, Dark2_8, GnBu3, GnBu4, GnBu5, GnBu6, GnBu7, GnBu8, GnBu9,

    Greens3, Greens4, Greens5, Greens6, Greens7, Greens8, Greens9,

    Greens256, Greys3, Greys4, Greys5, Greys6, Greys7, Greys8, Greys9,

    Greys256, HighContrast3, Inferno3, Inferno4, Inferno5, Inferno6,

    Inferno7, Inferno8, Inferno9, Inferno10, Inferno11, Inferno256,

    Iridescent3, Iridescent4, Iridescent5, Iridescent6, Iridescent7,

    Iridescent8, Iridescent9, Iridescent10, Iridescent11,

    Iridescent12, Iridescent13, Iridescent14, Iridescent15,

    Iridescent16, Iridescent17, Iridescent18, Iridescent19,

    Iridescent20, Iridescent21, Iridescent22, Iridescent23, Light3,

    Light4, Light5, Light6, Light7, Light8, Light9, Magma3, Magma4,

    Magma5, Magma6, Magma7, Magma8, Magma9, Magma10, Magma11,

    Magma256, MediumContrast3, MediumContrast4, MediumContrast5,

    MediumContrast6, Muted3, Muted4, Muted5, Muted6, Muted7, Muted8,

    Muted9, OrRd3, OrRd4, OrRd5, OrRd6, OrRd7, OrRd8, OrRd9, Oranges3,

    Oranges4, Oranges5, Oranges6, Oranges7, Oranges8, Oranges9,

    Oranges256, PRGn3, PRGn4, PRGn5, PRGn6, PRGn7, PRGn8, PRGn9,

    PRGn10, PRGn11, Paired3, Paired4, Paired5, Paired6, Paired7,

    Paired8, Paired9, Paired10, Paired11, Paired12, Pastel1_3,

    Pastel1_4, Pastel1_5, Pastel1_6, Pastel1_7, Pastel1_8, Pastel1_9,

    Pastel2_3, Pastel2_4, Pastel2_5, Pastel2_6, Pastel2_7, Pastel2_8,

    PiYG3, PiYG4, PiYG5, PiYG6, PiYG7, PiYG8, PiYG9, PiYG10, PiYG11,

    Plasma3, Plasma4, Plasma5, Plasma6, Plasma7, Plasma8, Plasma9,

    Plasma10, Plasma11, Plasma256, PuBu3, PuBu4, PuBu5, PuBu6, PuBu7,

    PuBu8, PuBu9, PuBuGn3, PuBuGn4, PuBuGn5, PuBuGn6, PuBuGn7,

    PuBuGn8, PuBuGn9, PuOr3, PuOr4, PuOr5, PuOr6, PuOr7, PuOr8, PuOr9,

    PuOr10, PuOr11, PuRd3, PuRd4, PuRd5, PuRd6, PuRd7, PuRd8, PuRd9,

    Purples3, Purples4, Purples5, Purples6, Purples7, Purples8,

    Purples9, Purples256, RdBu3, RdBu4, RdBu5, RdBu6, RdBu7, RdBu8,

    RdBu9, RdBu10, RdBu11, RdGy3, RdGy4, RdGy5, RdGy6, RdGy7, RdGy8,

    RdGy9, RdGy10, RdGy11, RdPu3, RdPu4, RdPu5, RdPu6, RdPu7, RdPu8,

    RdPu9, RdYlBu3, RdYlBu4, RdYlBu5, RdYlBu6, RdYlBu7, RdYlBu8,

    RdYlBu9, RdYlBu10, RdYlBu11, RdYlGn3, RdYlGn4, RdYlGn5, RdYlGn6,

    RdYlGn7, RdYlGn8, RdYlGn9, RdYlGn10, RdYlGn11, Reds3, Reds4,

    Reds5, Reds6, Reds7, Reds8, Reds9, Reds256, Set1_3, Set1_4,

    Set1_5, Set1_6, Set1_7, Set1_8, Set1_9, Set2_3, Set2_4, Set2_5,

    Set2_6, Set2_7, Set2_8, Set3_3, Set3_4, Set3_5, Set3_6, Set3_7,

    Set3_8, Set3_9, Set3_10, Set3_11, Set3_12, Spectral3, Spectral4,

    Spectral5, Spectral6, Spectral7, Spectral8, Spectral9, Spectral10,

    Spectral11, Sunset3, Sunset4, Sunset5, Sunset6, Sunset7, Sunset8,

    Sunset9, Sunset10, Sunset11, TolPRGn3, TolPRGn4, TolPRGn5,

    TolPRGn6, TolPRGn7, TolPRGn8, TolPRGn9, TolRainbow3, TolRainbow4,

    TolRainbow5, TolRainbow6, TolRainbow7, TolRainbow8, TolRainbow9,

    TolRainbow10, TolRainbow11, TolRainbow12, TolRainbow13,

    TolRainbow14, TolRainbow15, TolRainbow16, TolRainbow17,

    TolRainbow18, TolRainbow19, TolRainbow20, TolRainbow21,

    TolRainbow22, TolRainbow23, TolYlOrBr3, TolYlOrBr4, TolYlOrBr5,

    TolYlOrBr6, TolYlOrBr7, TolYlOrBr8, TolYlOrBr9, Turbo3, Turbo4,

    Turbo5, Turbo6, Turbo7, Turbo8, Turbo9, Turbo10, Turbo11,

    Turbo256, Vibrant3, Vibrant4, Vibrant5, Vibrant6, Vibrant7,

    Viridis3, Viridis4, Viridis5, Viridis6, Viridis7, Viridis8,

    Viridis9, Viridis10, Viridis11, Viridis256, YlGn3, YlGn4, YlGn5,

    YlGn6, YlGn7, YlGn8, YlGn9, YlGnBu3, YlGnBu4, YlGnBu5, YlGnBu6,

    YlGnBu7, YlGnBu8, YlGnBu9, YlOrBr3, YlOrBr4, YlOrBr5, YlOrBr6,

    YlOrBr7, YlOrBr8, YlOrBr9, YlOrRd3, YlOrRd4, YlOrRd5, YlOrRd6,

    YlOrRd7, YlOrRd8, YlOrRd9)
all_palettes#

所有内置调色板组。此字典使用调色板名称作为索引以获取完整的调色板组,例如 Viridis,然后使用整数作为索引从组中选择特定大小的调色板

>> all_palettes['Viridis'][4]
('#440154', '#30678D', '#35B778', '#FDE724')

生成的调色板如下所示:

brewer#

ColorBrewer 中包含的调色板组。此字典使用调色板名称作为索引以获取完整的调色板组,例如 YlGnBu,然后使用整数作为索引从组中选择特定大小的调色板

>> brewer['YlGnBu'][4]
('#225ea8', '#41b6c4', '#a1dab4', '#ffffcc')

生成的调色板如下所示:

d3#

D3 中包含的分类调色板组。此字典使用调色板名称作为索引以获取完整的调色板组,例如 Category20b,然后使用整数作为索引从组中选择特定大小的调色板

>> d3['Category20b'][4]
('#393b79', '#5254a3', '#6b6ecf', '#9c9ede')

生成的调色板如下所示:

D3 调色板组的名称是:Category10Category20Category20bCategory20c

mpl#

Matplotlib 中包含的调色板组。此字典使用调色板名称作为索引以获取完整的调色板组,例如 Plasma,然后使用整数作为索引从组中选择特定大小的调色板

>> mpl['Plasma'][4]
('#440154', '#30678D', '#35B778', '#FDE724')

生成的调色板如下所示:

MPL 调色板组的名称是:InfernoMagma PlasmaViridis

tol#

来自 Paul Tol 的颜色方案 的一组可访问调色板。此字典使用调色板名称作为索引以获取完整的调色板组,例如 Bright,然后使用整数作为索引从组中选择特定大小的调色板

>> tol['Bright'][4]
('#4477AA', '#EE6677', '#228833', '#CCBB44')

生成的调色板如下所示:

Tol 调色板组的名称是:BrightHighContrastVibrantMutedMediumContrastLightSunsetBuRdTolPRGnTolYlOrBrIridescentTolRainbow

small_palettes#

所有调色板组,不包括 256 长度的调色板。此字典使用调色板名称作为索引以获取完整的调色板组,例如 Viridis,然后使用整数作为索引从组中选择特定大小的调色板

>> small_palettes['Viridis'][4]
('#440154', '#30678D', '#35B778', '#FDE724')

生成的调色板如下所示:

函数#

bokeh.palettes 模块还有一些函数可用于生成任意大小的调色板。

cividis(n)[source]#

从 Cividis 调色板生成颜色调色板。

用作推导出新调色板的输入的完整 Cividis 调色板包含 256 种颜色,如下所示

参数::

n (int) – 要生成的调色板大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于基本调色板长度 256

示例

>>> cividis(6)
('#00204C', '#31446B', '#666870', '#958F78', '#CAB969', '#FFE945')

生成的调色板如下所示:

diverging_palette(palette1, palette2, n, midpoint)[source]#

通过组合正好两个输入调色板来生成新的调色板。

给定输入 palette1palette2,取一个组合的 n 种颜色,并在相对的 midpoint 处组合输入调色板。 palette1palette2 应为从感知上的深色到浅色从左到右进行的顺序调色板。在这种情况下,返回的调色板由在感知上的浅色端连接的输入调色板组成。通过分段线性插值组合调色板。

参数::
  • palette1 (seq[str]) – 第一个调色板的十六进制 RGB 颜色字符串序列

  • palette2 (seq[str]) – 第二个调色板的十六进制 RGB 颜色字符串序列

  • n (int) – 要生成的输出调色板大小

  • midpoint (float, optional) – 返回的调色板中输入调色板连接的相对位置(默认值:0.5)

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于输入调色板可能的组合长度

gray(n)[source]#

从 Greys 调色板生成颜色调色板。

用于生成新调色板的完整 Greys 调色板包含 256 种颜色,如下所示:

参数::

n (int) – 要生成的调色板大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于基本调色板长度 256

示例

>>> gray(6)
('#000000', '#333333', '#666666', '#999999', '#cccccc', '#ffffff')

生成的调色板如下所示:

注意

此函数还有另一个拼写方式 grey

grey(n)[source]#

从 Greys 调色板生成一个颜色调色板。

用于生成新调色板的完整 Greys 调色板包含 256 种颜色,如下所示:

参数::

n (int) – 要生成的调色板大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于基本调色板长度 256

示例

>>> grey(6)
('#000000', '#333333', '#666666', '#999999', '#cccccc', '#ffffff')

生成的调色板如下所示:

注意

此函数还有另一个拼写方式 gray

inferno(n)[source]#

从 Inferno 调色板生成一个颜色调色板。

用于生成新调色板的完整 Inferno 调色板包含 256 种颜色,如下所示:

参数::

n (int) – 要生成的调色板大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于基本调色板长度 256

示例

>>> inferno(6)
('#000003', '#410967', '#932567', '#DC5039', '#FBA40A', '#FCFEA4')

生成的调色板如下所示:

interp_palette(palette, n)[source]#

通过插值给定调色板生成新的调色板。

对每个 RGBA 分量分别进行线性插值。

参数::
  • palette (seq[str]) – 用于创建新调色板的十六进制 RGB(A) 颜色字符串序列

  • n (int) – 要生成的调色板的大小

返回::

十六进制 RGB(A) 颜色字符串序列

返回类型::

tuple[str]

引发::

如果 n 为负数提供的调色板为空,则会引发 ValueError。

linear_palette(palette, n)[source]#

生成一个新的调色板,作为给定调色板的子集。

给定一个输入 palette,通过将其长度除以 n(近似)均匀间隔的索引,从中获取 n 种颜色。

参数::
  • palette (seq[str]) – 十六进制 RGB 颜色字符串序列

  • n (int) – 要生成的输出调色板的大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n > len(palette),则会引发 ValueError。

magma(n)[source]#

从 Magma 调色板生成一个颜色调色板。

用于生成新调色板的完整 Magma 调色板包含 256 种颜色,如下所示:

参数::

n (int) – 要生成的调色板大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于基本调色板长度 256

示例

>>> magma(6)
('#000003', '#3B0F6F', '#8C2980', '#DD4968', '#FD9F6C', '#FBFCBF')

生成的调色板如下所示:

varying_alpha_palette(palette, n, start_alpha, end_alpha)[source]#

生成一个具有线性变化 alpha 的单色调色板。

Alpha 可以从低到高或从高到低变化,具体取决于 start_alphaend_alpha 的值。

参数::
  • color (str) – 命名颜色或 RGB(A) 十六进制颜色字符串。任何 alpha 分量都会与 start_alphaend_alpha 范围相结合,方法是将它们相乘,因此它是可以获得的最大 alpha 值。

  • n (int, 可选) – 要生成的调色板的大小。如果未指定,则使用最大颜色数,以便相邻颜色之间的 alpha 差异为 1。

  • start_alpha (int, 可选) – 调色板开始处的 alpha 分量是此值(在 0 到 255 的范围内)乘以 color 参数的 alpha 分量。

  • end_alpha (int, 可选) – 调色板结束处的 alpha 分量是此值(在 0 到 255 的范围内)乘以 color 参数的 alpha 分量。

返回::

十六进制 RGBA 颜色字符串序列

返回类型::

seq[str]

引发::

如果 color 不能识别为字符串名称十六进制 – RGB(A) 字符串,或者如果 start_alphaend_alpha 超出了 0 到 255(含)的范围,则会引发 ValueError。

viridis(n)[source]#

从 Viridis 调色板生成一个颜色调色板。

用于生成新调色板的完整 Viridis 调色板包含 256 种颜色,如下所示:

参数::

n (int) – 要生成的调色板大小

返回::

十六进制 RGB 颜色字符串序列

返回类型::

seq[str]

引发::

如果 n 大于基本调色板长度 256

示例

>>> viridis(6)
('#440154', '#404387', '#29788E', '#22A784', '#79D151', '#FDE724')

生成的调色板如下所示:

许可证#

包含在 Bokeh 中的所有调色板的相应许可证可以在 src/bokeh/palettes.py 源文件顶部作为注释查看。