删除 HoloViews 中的散景徽标

Remove Bokeh Logo in HoloViews

是否可以从使用 HoloViews 生成的绘图中删除 Bokeh 徽标?没什么可反对的……只是在某些报告中显示它可能没有意义。 :)

我知道在 Bokeh 中我可以简单地做:

p = bkp.figure(...)
...
p.toolbar.logo = None

更新

这是我的导入部分:

import sys
import os

import numpy as np
np.random.seed(0)
import random
random.seed(0)

import pandas as pd
from bokeh.models import HoverTool
import holoviews as hv
hv.extension("bokeh", logo=False)
hv.extension("bokeh",logo=False)

目前(自 holoviews 1.9.1 起)禁用工具栏中散景徽标的选项未直接公开,但您可以提供一个所谓的 finalize_hook,它允许您直接修改绘图。你可以直接在ElementPlot上添加这样一个钩子来全局设置:

def disable_logo(plot, element):
    plot.state.toolbar.logo = None
hv.plotting.bokeh.ElementPlot.finalize_hooks.append(disable_logo)

或将其设置为绘图选项:

hv.Curve(range(10)).opts(plot=dict(finalize_hooks=[disable_logo])

对于更复杂的布局,要移除Bokeh标志,我认为你需要将其渲染成Bokeh图形,然后使用Bokeh的原生方法将其移除。

layout = C + D
plot = renderer.get_plot(layout)
p = plot.state
p.children[0].toolbar.logo = None
show(p)

1) 这与 philippjfr 的回答几乎相同,但略短 using hooks:

def remove_bokeh_logo(plot, element):
    plot.state.toolbar.logo = None

hv.Scatter(df).opts(hooks=[remove_bokeh_logo])


2) Andrew 的回答是,将情节渲染为散景然后删除徽标:

from bokeh.plotting import show

hv_plot = hv.Scatter(df)
bokeh_plot = hv.render(hv_plot, backend='bokeh')
bokeh_plot.toolbar.logo = None

show(bokeh_plot)