gza*_*tti 5 python plot matplotlib bokeh
我正在写一份报告,所有图都用绘制Matplotlib。我已经调整了Matplotlib默认值,以确保所有绘图都具有相同的样式。
但是,我需要使用Bokeh它,因为它提供了渲染图例的支持Datashader-由的人们正在开发的库Bokeh。
我的问题是默认Bokeh样式与我的自定义样式有很大不同。除了可以改变Bokeh绘图中的每个属性之外,还可以通过与?Bokeh类似的方式从样式表中进行读取?Matplotlibplt.use.style(['ggplot'])
截至 Bokeh,围绕 Bokeh 主题0.12.4仍然存在未解决的问题(需要开发的功能以及一些错误,以及更多文档支持)。当前支持的是使用基于类型的主题Theme可以在当前文档上设置的对象的基于类型的主题。
该Theme对象采用 JSON 块,其一般形式为:
{
'attrs: {
'SomeTypeName': { 'foo_property': default_foo },
'OtherTypeName': { 'bar_property': default_bar }
}
}
Run Code Online (Sandbox Code Playgroud)
或者举个具体的例子:
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,
}
}})
Run Code Online (Sandbox Code Playgroud)
还可以使用标准 Python JSON 工具从文件中读取此 JSON。
如果这也恰好发生在(目录样式)Bokeh 服务器应用程序的上下文中,您还可以将主题作为文件提供theme.yaml在与您的main.py. 例如,参见Gapminder 示例。