2017-03-06 7 views
1

show()を使用せずにBokehでPandasプロットを表示および更新することはできますか?このオンラインの例はありますか?私は何かを見つけることができないようです。例えば、何かのように:ビルトインBokehサーバーを使用するパンダプロット?

def bar_plot(fig, source): 
    p = pd.DataFrame() 
    p = p.from_dict(source.data) 

    fig = p.plot.bar() 
    return fig 

def update_data(): 
    data = source.data 
    data['y'] = random.sample(range(0,100),len(data['y'])) 
    source.data = data 

button.on_click(update_data) 
source = ColumnDataSource(data) 

fig = bar_plot(fig, source) 
layout = layout([[button,fig]]) 
curdoc().add_root(layout) 
+0

なぜbar over vbarを使用したいですか?あなたのデータがデータフレーム内にある場合、それを簡単にColumnDataSourceに変換して、私が投稿したメソッドを使用することができます - ここでコピーして変更しましたか? – Anthonydouc

+0

あなたの方法は私のために働く。私は、棒グラフをプロットするタブと単語クラウドをプロットするタブの2つのタブを持つシンプルなアプリケーションを作りたいと思っています。私はちょうど定義する方法を把握しようとすると、Bokehバー、vbarなどに組み込まれている以外のものをプロットする私の独自のプロット関数を呼び出します。しかし、それは簡単ではないように聞こえる。 – Kyle

+0

ああ、あなたが他の図書館でプロットしてボケに渡したかったのと同じように、私はそれを誤解しました。ボケソースを取っていない他のプロットを実際に使用したい場合は、再作成するたびにチャートを手動で更新できます。 – Anthonydouc

答えて

0

パンダ.plot方法は、画像を生成するmatplotlibのを使用しています。 Bokehサーバーは、Python/JS境界を越えてMPLプロットを同期または更新する方法がありません。 Bokehサーバーは、ネイティブBokeh APIを使用して作成されたプロットのみを表示および更新することができます(つまり、Figure.vbarまたは同様のBokeh関数を使用してデータフレームから棒グラフを作成できます)。

+0

ありがとうございました!私は、棒グラフを表示するタブと単語クラウドを持つタブの2つの簡単なアプリケーションを作成したかったのです。私はボケの外に言葉の雲を作る方法を知っていますが、これは*ボケで可能ですか? – Kyle

+0

いくつかの可能性があります。それらのどれかが完璧であるかどうかはわかりません。しかし、SOは投機的な議論にはあまり適していないので、[公開のメーリングリスト](https://groups.google.com/a/continuum.io/forum/#!forum/bokeh)は、それについて議論する – bigreddot

関連する問題