繁体   English   中英

在 HoloViews 中删除散景徽标

[英]Remove Bokeh Logo in HoloViews

是否可以从 HoloViews 生成的图中删除 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)

目前(从 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 logo,我觉得需要渲染成Bokeh图,然后用Bokeh的原生方法去掉。

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

移除布局的散景标志

hv.extension("bokeh",logo=False)

1)这与philippjfr答案几乎相同,但使用钩子略短:

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

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


2)还有安德鲁的答案,将情节渲染为散景,然后删除徽标

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM