2017-05-21 40 views
1

私はBokehでユーザーの入力を表示する方法を理解しようとしています。サンプルコードは以下の通りです。どんな指針も大変ありがとうございます。Bokeh:ユーザーの入力テキストを表示

はあなたに

from bokeh.layouts import widgetbox 
from bokeh.models import CustomJS, TextInput, Paragraph 
from bokeh.plotting import output_file, show 

# SAVE 
output_file('Sample_Application.html',mode='inline',root_dir=None) 

# PREP DATA 
welcome_message = 'You have selected: (none)' 

# CALLBACKS 
def callback_print(source=None, window=None): 
    user_input = str(cb_obj.value) 
    welcome_message = 'You have selected: ' + user_input 
    source.trigger('change') 

# TAKE ONLY OUTPUT 
text_banner = Paragraph(text=welcome_message, width=200, height=100) 

# USER INTERACTIONS 
text_input = TextInput(value="", title="Enter row number:",    
callback=CustomJS.from_py_func(callback_print)) 

# LAYOUT 
widg = widgetbox(text_input, text_banner) 
show(widg) 

答えて

3

いくつかの問題に感謝し、あなたが実際にPythonのコールバックにテキストバナーオブジェクトに渡して、新しい文字列にテキスト属性を更新する必要があります。

現在、「ソース」は渡されていますが、これは未定義であり、変更をトリガーしようとしています。通常は、このあなたが元のデータを変更し、などのテーブルやグラフに表示するためにそれを更新しないとき...必要に応じて修正

from bokeh.layouts import widgetbox 
from bokeh.models import CustomJS, TextInput, Paragraph 
from bokeh.plotting import output_file, show 

# SAVE 
output_file('Sample_Application.html',mode='inline',root_dir=None) 

# PREP DATA 
welcome_message = 'You have selected: (none)' 

# TAKE ONLY OUTPUT 
text_banner = Paragraph(text=welcome_message, width=200, height=100) 

# CALLBACKS 
def callback_print(text_banner=text_banner): 
    user_input = str(cb_obj.value) 
    welcome_message = 'You have selected: ' + user_input 
    text_banner.text = welcome_message 

# USER INTERACTIONS 
text_input = TextInput(value="", title="Enter row number:",    
callback=CustomJS.from_py_func(callback_print)) 

# LAYOUT 
widg = widgetbox(text_input, text_banner) 
show(widg) 
+0

以下に含ま

はどうもありがとうございました。私はこの上に私の髪を引っ張っていた。 – user3155053

+0

それは問題ではありません! – Anthonydouc

関連する問題