我试图弄清楚看似简单的事情:用户使用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,还是不能在回调之外被引用。