如何使用TextInput更新(网络)图形?

时间:2019-07-10 20:22:59

标签: python bokeh textinput

我试图弄清楚看似简单的事情:用户使用TextInput输入文本,然后我们动态更新显示的图。

数据是一个networkx图;该图是围绕用户输入节点的子图。我想避免为用户提供节点选择菜单,因为它们很多。

作为解决方案,我能找到的最接近的是: Bokeh: Display user input text 但是这里您没有存储,以后将参考用户输入的内容。您只显示刚刚输入TextInput的用户。

我有一个函数,该函数将节点作为输入并抛出我想要的图表:

def my_plot(节点):      #创建一个绘图对象      返回情节

show(my_plot('NodeA'))

返回我想要的。我正在尝试使动态选择NodeA。

def my_doc(doc):

ti = TextInput(value = 'NodeA', title='Enter node')
nd = 'A'
# Default
plot = my_plot(nd)

def callback(attr, old, new):
    if ti.value != '':
        plot = my_plot(new)
        # tried ti.value here, no change
    else:
        print('Will develop better error messages later')

ti.on_change('value', callback)   

layout = column(widgetbox(ti),plot)

doc.add_root(layout)

显示(my_doc) 会导致默认图形显示在上面的文本输入中,但是您输入的内容完全不受影响

我试图用 nd =新的#或ti.value 但是print(nd)只是简单地将'A'打印为默认值

它看起来不像是存储了TextInput,还是不能在回调之外被引用。

0 个答案:

没有答案