我通常使用=INDEX(header_row,SUMPRODUCT((names=specific_name)*(column_index)))
后端,但是我也希望能够绘制表面,这受bokeh
后端的支持,但不受matplotlib
的支持。有没有一种方法可以指定一个特定的图应该使用不同的后端进行渲染而无需更改用于后续图的后端?我可以做以下例如在Jupyter笔记本中:
bokeh
import holoviews as hv
hv.extension("bokeh")
# plots involving bokeh backend
surface = hv.Surface(np.sin(np.linspace(0,100*np.pi*2,10000)).reshape(100,100))
hv.extension("matplotlib")
surface
但这很不方便。有什么我想做的
hv.extension("bokeh")
# more plots involving bokeh
以便该元素将使用surface = surface.opts(extension="matplotlib")
进行渲染,而其他图的渲染不会受到影响?
答案 0 :(得分:2)
如果您使用的是Holoviews> = 1.11.0,则可以使用hv.output
实用程序。首先,请确保同时加载两个后端:
import holoviews as hv
hv.extension("bokeh", "matplotlib")
... # Various plots using bokeh
现在,您可以使用output
实用程序通过matplotlib(或按图显示)显示单个图:
surface = hv.Surface(np.sin(np.linspace(0,100*np.pi*2,10000)).reshape(100,100))
hv.output(surface, backend='matplotlib')
如果您还必须为不同的后端提供自定义选项,则可以将后端指定为.opts
(或.options
声明)的一部分:
hv.output(surface.opts(fig_size=200, backend='matplotlib'), backend='matplotlib')