Jupyter notebook bqplot:未呈现ipython小部件

Jupyter notebook bqplot:未呈现ipython小部件,jupyter-notebook,ipywidgets,bqplot,Jupyter Notebook,Ipywidgets,Bqplot,我试图在jupyter笔记本和一些iPyWidget中绘制一些图形。如中所述,我希望在绘图附近水平渲染小部件,但我无法让小部件显示在我的jupyter笔记本中 我的代码如下- from bqplot import pyplot as plt import ipywidgets as widgets from pandas import DataFrame class AdderDOEProblem_PlotUtils: def __init__(self, parseutils):

我试图在jupyter笔记本和一些iPyWidget中绘制一些图形。如中所述,我希望在绘图附近水平渲染小部件,但我无法让小部件显示在我的jupyter笔记本中

我的代码如下-

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-1.0.0
ipython-5.1.0
ipywidgets-5.2.2

bqplot-0.8.4

在plot函数中,必须返回正在创建的
HBox
。这就是为什么它没有被显示。显示的图形来自
plt.show
命令,该命令仅显示当前上下文中的
图形。请注意,您不再需要
plt.show()
。所以plot函数看起来像

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])

在plot函数中,必须返回正在创建的
HBox
。这就是为什么它没有被显示。显示的图形来自
plt.show
命令,该命令仅显示当前上下文中的
figure
。请注意,您不再需要
plt.show()
。所以plot函数看起来像

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])

您可能需要最后的显示调用<代码>从IPython.display导入显示;a=AdderDOEProblem_PlotUtils();box=a.plot();显示(框)
。另外,我想如果您的滑块是用来控制
self.plot
,那么它们将通过
更新()
充分实现这一点。也就是说,我不确定您是否需要
plot()
中的
update()
。您可能需要最后的显示调用<代码>从IPython.display导入显示;a=AdderDOEProblem_PlotUtils();box=a.plot();显示(框)。另外,我想如果您的滑块是用来控制
self.plot
,那么它们将通过
更新()
充分实现这一点。也就是说,我不确定您是否需要
plot()
中的
update()