如何在 Bokeh 中设置默认样式?
How to set the default style in Bokeh?
我正在写一份报告,其中的情节都是用 Matplotlib
渲染的。我调整了 Matplotlib
的默认值以确保所有绘图具有相同的样式。
但是,我需要使用 Bokeh
,因为它支持 Datashader
的渲染图例 - 一个由 Bokeh
的人员开发的库。
我的问题是默认 Bokeh
样式与我的自定义样式有很大不同。与其更改我的 Bokeh
图中的每个属性,不如让 Bokeh
从样式 sheet 中读取,就像 Matplotlib
对 [=19= 的读取方式类似]?
截至 Bokeh 0.12.4
围绕 Bokeh 中的主题仍然存在未解决的问题(需要开发的功能以及一些错误和更多的文档支持)。当前支持的是 type-based 使用可以在当前文档上设置的 Theme
对象的主题。
Theme
对象采用 JSON 块,一般形式为:
{
'attrs: {
'SomeTypeName': { 'foo_property': default_foo },
'OtherTypeName': { 'bar_property': default_bar }
}
}
或者举个具体的例子:
from bokeh.io import curdoc
from bokeh.themes import Theme
curdoc().theme = Theme(json={'attrs': {
# apply defaults to Figure properties
'Figure': {
'toolbar_location': None,
'outline_line_color': None,
'min_border_right': 10,
},
# apply defaults to Axis properties
'Axis': {
'major_tick_in': None,
'minor_tick_out': None,
'minor_tick_in': None,
'axis_line_color': '#CAC6B6',
'major_tick_line_color': '#CAC6B6',
},
# apply defaults to Legend properties
'Legend': {
'background_fill_alpha': 0.8,
}
}})
这个 JSON 也可以使用标准 Python JSON 工具从文件中读取。
如果这也恰好在(目录样式)Bokeh 服务器应用程序的上下文中,您还可以将主题作为 theme.yaml
文件提供在与 main.py
相同的目录中。参见,例如 Gapminder example.
我正在写一份报告,其中的情节都是用 Matplotlib
渲染的。我调整了 Matplotlib
的默认值以确保所有绘图具有相同的样式。
但是,我需要使用 Bokeh
,因为它支持 Datashader
的渲染图例 - 一个由 Bokeh
的人员开发的库。
我的问题是默认 Bokeh
样式与我的自定义样式有很大不同。与其更改我的 Bokeh
图中的每个属性,不如让 Bokeh
从样式 sheet 中读取,就像 Matplotlib
对 [=19= 的读取方式类似]?
截至 Bokeh 0.12.4
围绕 Bokeh 中的主题仍然存在未解决的问题(需要开发的功能以及一些错误和更多的文档支持)。当前支持的是 type-based 使用可以在当前文档上设置的 Theme
对象的主题。
Theme
对象采用 JSON 块,一般形式为:
{
'attrs: {
'SomeTypeName': { 'foo_property': default_foo },
'OtherTypeName': { 'bar_property': default_bar }
}
}
或者举个具体的例子:
from bokeh.io import curdoc
from bokeh.themes import Theme
curdoc().theme = Theme(json={'attrs': {
# apply defaults to Figure properties
'Figure': {
'toolbar_location': None,
'outline_line_color': None,
'min_border_right': 10,
},
# apply defaults to Axis properties
'Axis': {
'major_tick_in': None,
'minor_tick_out': None,
'minor_tick_in': None,
'axis_line_color': '#CAC6B6',
'major_tick_line_color': '#CAC6B6',
},
# apply defaults to Legend properties
'Legend': {
'background_fill_alpha': 0.8,
}
}})
这个 JSON 也可以使用标准 Python JSON 工具从文件中读取。
如果这也恰好在(目录样式)Bokeh 服务器应用程序的上下文中,您还可以将主题作为 theme.yaml
文件提供在与 main.py
相同的目录中。参见,例如 Gapminder example.