2017-03-05 11 views
1

私はBokehを新しくしています。私のプロットが更新されていない理由を教えてください。コードは非常に簡単で、ここで見つけることができます:コードは単に機能「get_dataset」、プロット棒グラフを使用していくつかのデータをつかむと、私は使用してプロットを更新できるようになっているBokeh Figureは更新されませんか?

http://pastebin.com/MLAigEG6

ドロップダウンボックスとスライダー。二つの小さなデータフレームは、ここで見つけることができる:

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(source): 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を使用するとよいでしょう。しかし、一般的には、コードをテストするだけで、データ点が少なく、詳細が少ない単純なサンプルを作成する必要があります。 –

関連する問題