2017-02-09 6 views
1

私はbqplotを使用して、いくつかのipywidgetsとともにjupyterノートブックのグラフをプロットしようとしています。私は、this issueで議論されているように、私のプロットに横にウィジェットを水平にレンダリングしたいが、ウィジェットを私のジュピターのノートブックに表示することはできない。bqplot:ipythonウィジェットがレンダリングされない

次のように私のコードがある -

from bqplot import pyplot as plt 
import ipywidgets as widgets 
from pandas import DataFrame 

class AdderDOEProblem_PlotUtils: 
    def __init__(self, parseutils): 
     self.data = DataFrame({'timestamps': parseutils.getTimestampValues(), 
          'Adder.sum': parseutils.getValues('Adder.sum'), 
          'Adder.a': parseutils.getValues('desvar_a.a'), 
          'Adder.b': parseutils.getValues('desvar_b.b')}) 
     # step size 
     self.Adder_a__step = 0.1 
     self.Adder_b__step = 0.1 

     # axes configuration 
     x_axis_values = self.data['Adder.a'] 
     y_axis_values = self.data['Adder.sum'] 

     self.fig = plt.figure(title='AdderDOEProblem') 
     self.p = plt.plot(x_axis_values, y_axis_values) 

     w_a_slider = widgets.FloatSlider(value=0, min=0, max=1, step=self.Adder_a__step, description='Adder.a') 
     w_b_slider = widgets.FloatSlider(value=0, min=0, max=1, step=self.Adder_b__step, description='Adder.b') 
     self.widgets_list = [w_a_slider, w_b_slider] 

    def update (self, change): 
     # Placeholder logic for testing 
     self.p.y = [i+1 for i in self.p.y] 

    def plot (self): 
     plt.show() 
     for w in self.widgets_list: 
      w.observe(self.update, 'value') 
     self.update(None) 
     widgets.HBox([widgets.VBox(self.widgets_list), self.fig]) 

私はノートにそれを実行すると、私は次の出力を得る -

jupyter notebook output

多くで提案されているように、私は、次のコマンドを試してみましたスレッドの(運がない) -

jupyter nbextension enable --py widgetsnbextension 

私は何が欠けていますか?

P.S.次のようにパッケージのバージョンがある -
jupyter - 1.0.0
ipython - 5.1.0
ipywidgets - 5.2.2が
bqplot - あなたのプロット機能で0.8.4

答えて

4

、あなたは返す必要が作成中のHBox。それが表示されていない理由です。表示されている数字はplt.showコマンドのもので、現在のコンテキストではFigureしか表示されません。これ以上plt.show()は必要ないことに注意してください。プロット関数は次のようになります。

def plot (self): 
    for w in self.widgets_list: 
     w.observe(self.update, 'value') 
    self.update(None) 
    return widgets.HBox([widgets.VBox(self.widgets_list), self.fig]) 
+0

ありがとうございました! :) –

関連する問題