如何多次更新散景图中的绘图特征(hovertool细节和x_range)?

时间:2016-09-01 19:02:53

标签: python jupyter bokeh ipywidgets

我有一个散景图,我想在更新绘图中的源数据时更新范围(x_range和y_range)以及hovertool细节(字段名称等)。我尝试过的东西还没有奏效。任何帮助,将不胜感激。这是我尝试过的一个例子。

def update_plot(*args):
    source = select_data();

    # Set ranges (not working)
    p.x_range = Range1d(0, source['x'].max())
    p.y_range = Range1d(0, source['y'].max())

    # How to change hovertool here?

figureTools = [HoverTool()]
p = figure(plot_height=600, plot_width=700, title='', tools=figureTools)
p.circle(x='x', y='y', source=source, line_color=None)

widget = widgets.Dropdown(options=['1', '2', '3'])
widget.observe(update_plot, 'value')

update_plot();
show(p);

1 个答案:

答案 0 :(得分:0)

你可以把show(p)放在更新中,这对我有用。 例如,

def update_plot(*args):
    source = select_data();

    # Set ranges (not working)
    p.x_range = Range1d(0, source['x'].max())
    p.y_range = Range1d(0, source['y'].max())

    # How to change hovertool here?
    show(p);

figureTools = [HoverTool()]
p = figure(plot_height=600, plot_width=700, title='', tools=figureTools)
p.circle(x='x', y='y', source=source, line_color=None)

widget = widgets.Dropdown(options=['1', '2', '3'])
widget.observe(update_plot, 'value')

update_plot();
show(p);