2017-03-05 81 views
1

我是Bokeh的新手,想知道是否有人可以借給我一點幫助,告訴我爲什麼我的情節沒有更新?代碼非常簡單,可以在這裏找到:散景圖不會更新?

http://pastebin.com/MLAigEG6

的代碼只應該使用功能「get_dataset」,情節條形圖抓一些數據,讓我用一個更新的情節下拉框和滑塊。兩個小dataframes可以在這裏找到:

https://github.com/degravek/bdata

滑塊設置爲默認爲15(30個合計值繪製)。如果滑塊已移動,或者下拉框更改,則繪圖的軸由於某種原因不會更新。例如,如果滑塊設置爲2,則應該只顯示2個棒,並且軸應該相應地進行調整。非常感謝您的關注。

回答

2

不錯的代碼。在您的更新功能中,您還需要更新劇情的x_range.factors。這裏不需要global asdata

def update_samples_or_dataset(attrname, old, new): 
    dataset = dataset_select.value 
    n_samples = int(samples_slider.value) 

    asdata = get_dataset(dataset, n_samples) 
    plot.x_range.factors = asdata['aspects'].tolist() # this was missing 
    source.data = dict(x=asdata['aspects'].tolist(), y=asdata['importance'].values) 
+0

哇,非常感謝。這節省了我很多時間。 – Kyle

+0

我有一個更快的問題。您是否知道如何使用Bokeh服務器在Bokeh中使用「自定義」功能?例如,您可以使用 def mplot(來源): p = pd.DataFrame() p ['aspects'] = source.data ['x'] p ['importance'] = source.data [ 'Y'] 情節=酒吧(p,值= '重要性',標籤= '方面',傳說= FALSE) 回報情節 我現在的嘗試是在這裏: http://pastebin.com/7Zk9ampq 但它不運行。我並不擔心讓函數「update_samples_or_dataset」工作,只是顯示的初始情節。謝謝! – Kyle

+0

如果您還提供了缺失數據:sorted_ngram3.csv,sorted_chunk.csv和sorted_rake.csv,那將會很好。但是一般來說,你應該創建一個簡單的例子,只用很少的數據點和少量細節來測試你的代碼。 –