我正在撰写一份报告,其中的图都是用Matplotlib渲染的.我调整了Matplotlib的默认值以确保所有绘图都具有相同的样式.
但是,我需要使用Bokeh,因为它支持渲染Datashader的图例 – 一个由Bokeh的人们开发的库.
我的问题是默认的散景风格与我的自定义风格截然不同.不是改变我的Bokeh图中的每一个属性,而是可以用样式表读取Bokeh,就像Matplotlib用plt.use.style([‘ggplot’])一样?
最佳答案 从Bokeh 0.12.4开始,在Bokeh中仍然存在未解决的问题(开发的功能以及一些错误,以及更多的文档支持).目前支持的是使用可在当前文档上设置的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,
}
}})
也可以使用标准Python JSON工具从文件中读取此JSON.
如果这也恰好位于(目录样式)Bokeh服务器应用程序的上下文中,您还可以将主题作为theme.yaml文件提供在与main.py相同的目录中.参见例如Gapminder example.