【问题标题】:How to change the content of some tool button tooltip in a plot toolbar?如何更改绘图工具栏中某些工具按钮工具提示的内容?
【发布时间】:2018-11-18 16:20:19
【问题描述】:

我的绘图中目前有两个不同形状的 HoverTools,在工具面板中,无法区分展位形状的 HoverTool。

有什么方法可以将工具名称从“Hover”更改为其他名称?

另一种选择是从工具面板中隐藏展位工具,可以吗?

plot = figure(tools='pan,wheel_zoom,save', active_scroll = "wheel_zoom", x_axis_location=None, y_axis_location=None, output_backend="webgl", plot_width=1200, plot_height= 600, match_aspect=True )

plot.add_tools(HoverTool(renderers=[shape1], tooltips=[('title1',"text1")]))
plot.add_tools(HoverTool(renderers=[shape2], tooltips=[('title2',"text2")]))

【问题讨论】:

    标签: python python-3.x hover tooltip bokeh


    【解决方案1】:

    关于你的第二个问题

    另一种选择是从工具面板中隐藏展位工具,可以吗?

    我已经回答了类似的问题here

    只需将toggleable 属性设置为False。检查此示例,其中隐藏了悬停工具按钮:

    from bokeh.models import HoverTool, ColumnDataSource, LassoSelectTool, PanTool
    from bokeh.plotting import show, figure, curdoc
    
    source = ColumnDataSource(dict(
        x=[1, 2, 3, 4],
        y=[5, 6, 7, 8]
    ))
    
    p = figure(
        width=400,
        height=400,
        tools='')
    
    p.scatter(
        x='x', y='y', source=source,
        fill_alpha=1.0, line_alpha=1.0, line_color="grey",
        size=6
    )
    
    pan = PanTool()
    lasso = LassoSelectTool()
    
    tooltips = '''
        <b>X: </b> @{x} <br>
        <b>Y: </b> @{y} <br>
    '''
    hover = HoverTool(
        toggleable=False,       # add this to all your hover tools
        mode='mouse',
        tooltips=tooltips,
    )
    
    tools = (
        pan, lasso, hover
    )
    p.add_tools(*tools)
    
    curdoc().add_root(p)
    

    【讨论】:

    • "toggleable=False" 完全不同。它工作得很好。感谢您的回答!
    • 好的,@MiguelGonçalves,不客气。如果回答对您有帮助,请投票,谢谢
    【解决方案2】:

    您可以像这样明确命名工具:

    tools=['pan', 'box_zoom', 'wheel_zoom', 'crosshair', 'reset', 'save']
    plot = figure(tools=tools, active_scroll = "wheel_zoom", x_axis_location=None, y_axis_location=None, output_backend="webgl", plot_width=1200, plot_height= 600, match_aspect=True )
    
    shape1 = plot.line([0,1],[2,3])
    shape2 = plot.line([4,5],[6,7])
    
    h1 = HoverTool(renderers=[shape1], tooltips=[('title1',"text1")])
    h2 = HoverTool(renderers=[shape2], tooltips=[('title2',"text2")])
    
    plot.add_tools(h1, h2)
    

    另一个注意事项 - 如果您将 h1 和 h2 放在声明工具的初始列表中,您将收到警告说重复悬停工具。不过,我还没有看到这个警告会导致问题。

    【讨论】:

    • 感谢您的回复。我实际上是在尝试更改“悬停”标签(在附图中)。由于我在工具面板中有 2 个悬停按钮,我无法区分每个形状的正确按钮。
    • 明白了。我对此进行了更多研究......工具栏中的“悬停”标签似乎是在 Bokeh JS 中定义的。您可以通过指定 output_file(filename, mode='inline') 将其下载到输出文件中。如果您搜索“Hover”,您将找到指定“e.tool_name="Hover"”的行。我尝试将其更改为“Hover1”,并在将两个悬停工具名称更改为 Hover1 后将其更改。所以我不确定你目前正在尝试做的事情是否可行,除非你真的很擅长 JS...
    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多