bokeh.themes#

提供对内置主题的访问

内置主题#

CALIBER#

from bokeh.plotting import curdoc, figure, show

x = [1, 2, 3, 4, 5]
y = [6, 7, 6, 4, 5]

curdoc().theme = 'caliber'

p = figure(title='caliber', width=300, height=300)
p.line(x, y)

show(p)

CARBON#

from bokeh.plotting import curdoc, figure, show

x = [1, 2, 3, 4, 5]
y = [6, 7, 6, 4, 5]

curdoc().theme = 'carbon'

p = figure(title='carbon', width=300, height=300)
p.line(x, y)

show(p)

DARK_MINIMAL#

from bokeh.plotting import curdoc, figure, show

x = [1, 2, 3, 4, 5]
y = [6, 7, 6, 4, 5]

curdoc().theme = 'dark_minimal'

p = figure(title='dark_minimal', width=300, height=300)
p.line(x, y)

show(p)

LIGHT_MINIMAL#

from bokeh.plotting import curdoc, figure, show

x = [1, 2, 3, 4, 5]
y = [6, 7, 6, 4, 5]

curdoc().theme = 'light_minimal'

p = figure(title='light_minimal', width=300, height=300)
p.line(x, y)

show(p)

NIGHT_SKY#

from bokeh.plotting import curdoc, figure, show

x = [1, 2, 3, 4, 5]
y = [6, 7, 6, 4, 5]

curdoc().theme = 'night_sky'

p = figure(title='night_sky', width=300, height=300)
p.line(x, y)

show(p)

CONTRAST#

from bokeh.plotting import curdoc, figure, show

x = [1, 2, 3, 4, 5]
y = [6, 7, 6, 4, 5]

curdoc().theme = 'contrast'

p = figure(title='contrast', width=300, height=300)
p.line(x, y)

show(p)

主题#

class Theme(filename: str | PathLike[str])[source]#
class Theme(json: dict[str, Any])

为 Bokeh 模型提供新的默认值。

Bokeh 模型属性都有内置的默认值。如果属性没有被显式设置(例如 m.foo = 10),访问该属性将返回默认值。对于用户来说,能够指定与内置默认值不同的默认值集可能很有用。 Theme 类允许轻松地将自定义默认值集合应用于 Bokeh 文档。

Theme 类可以从 YAML 文件或 JSON 字典中构建(但不能同时从两者构建)。下面展示了两种格式的示例。

绘图 API 默认值会覆盖一些主题属性。具体来说是: fill_alphafill_colorline_alphaline_colortext_alphatext_color。因此,在使用绘图 API 时,应该显式设置这些属性。

参数:
  • filename (str, optional) – YAML 主题文件的路径

  • json (str, optional) – 指定主题值的 JSON 字典

引发:

ValueError – 如果未提供 filenamejson

示例

主题通过提供一个顶级键 attrs 来指定,该键包含要进行主题化的模型类型的块。每个块都有键和值,用于指定该类型的新属性默认值。

请注意,YAML 将值 None 解释为字符串,这通常不是你想要的。要在 YAML 中提供 None 作为值,请使用 !!null。要在 json 中提供 'None' 作为值,请使用 null

以下是一个 YAML 格式的主题示例,它设置所有图形、网格和标题的各种视觉属性

attrs:
    Plot:
        background_fill_color: '#2F2F2F'
        border_fill_color: '#2F2F2F'
        outline_line_color: '#444444'
    Axis:
        axis_line_color: !!null
    Grid:
        grid_line_dash: [6, 4]
        grid_line_alpha: .3
    Title:
        text_color: "white"

以下是相同的主题,使用 JSON 格式

{
    'attrs' : {
        'Plot': {
            'background_fill_color': '#2F2F2F',
            'border_fill_color': '#2F2F2F',
            'outline_line_color': '#444444',
        },
        'Axis': {
            'axis_line_color': None,
        },
        'Grid': {
            'grid_line_dash': [6, 4],
            'grid_line_alpha': .3,
        },
        'Title': {
            'text_color': 'white'
        }
    }
}