如何更新绘图范围(x_range / y_range)?

时间:2017-02-21 17:22:36

标签: python plot range bokeh

我正在使用Bokeh制作气泡图,我希望能够更新我的情节的x_range,因为它可以用于整数或字符串。

如果我没有弄错的话,Int范围将通过Range1d进行管理,而字符串则通过FactorRange进行管理。

我正在尝试使用update()函数,只要使用控件就调用它:

plot = figure(y_range=FactorRange(factors=pandata['HostnameIP'].tolist()), plot_height=600, plot_width=700, title="Visualization", toolbar_location="above", tools=[hover, BoxSelectTool(), ResetTool()])
plot.circle(x='x', y='y', source=source, size=7, color="color", line_color=None, fill_alpha="alpha")

controls = [malware, compromise, x_axis]
for control in controls:
    control.on_change('value', lambda attr, old, new: update())

def update():
    df = select_units()
    x_name = axis_map[x_axis.value]

    plot.xaxis.axis_label = x_axis.value

    if x_name == 'Malware':
        plot.x_range=FactorRange(factors=pandata['Malware'].tolist())
        l.children[0].children[1] = plot

# [...]

inputs = widgetbox(*controls, sizing_mode=sizing_mode)
l = layout([
    [inputs, plot],
    [data_table]
], sizing_mode=sizing_mode)

update()

curdoc().add_root(l)
curdoc().title = "Visualization"

根据this SO,这种技术应该有效,但我得到了一个空白的情节。

我也试过this answer,但看起来像.set()不再存在了。

关于如何做到这一点的任何想法?我还在发现Bokeh。

TYA:)

0 个答案:

没有答案