我正在撰写一份报告,其中所有的图形都是用Matplotlib
绘制的。我已经调整了Matplotlib
的默认设置,以确保所有的图形风格相同。
然而,由于Bokeh
支持Datashader
(一种由Bokeh
团队开发的库)的渲染图例,我需要使用Bokeh
。
我的问题是,默认的Bokeh
风格与我的自定义风格非常不同。我是否可以让Bokeh
从样式表中读取样式,类似于Matplotlib
用plt.use.style(['ggplot'])
的方式?
我正在撰写一份报告,其中所有的图形都是用Matplotlib
绘制的。我已经调整了Matplotlib
的默认设置,以确保所有的图形风格相同。
然而,由于Bokeh
支持Datashader
(一种由Bokeh
团队开发的库)的渲染图例,我需要使用Bokeh
。
我的问题是,默认的Bokeh
风格与我的自定义风格非常不同。我是否可以让Bokeh
从样式表中读取样式,类似于Matplotlib
用plt.use.style(['ggplot'])
的方式?
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示例。
Bokeh
是一个很有前景的库。然而,我发现 Bokeh 不允许我通过编程的方式将图像保存为png
格式,所以,遗憾的是,我不得不放弃原本非常优秀的Datashader
库。相反,我选择将eq_hist
改编成了matplotlib
的流程。 - gzagattiMPL+Datashader
集成的事情。但是我真正需要的是从Datashader
中获得制作图例的能力。我找不到这个功能,我的搜索结果指向了这里,它使用Bokeh
来创建离散化的图例,这就是我开始使用Bokeh
的原因。 - gzagatti