ipywidgets 在交互前不显示情节

ipywidgets doesn't show plot before interaction

除非用户与小部件交互,否则 ipywidgets 不会显示绘图。我该如何解决这个问题?也许如果我可以使用一些代码更新滑块值,那么绘图就会显示出来。我认为只有在使用 Layout 配置方法时才会出现此问题。

import numpy as np
from matplotlib import pyplot as plt
from ipywidgets import interactive, fixed, FloatSlider, HBox, Layout
from IPython.display import display

ts = np.arange(0.0, 5.0, 0.01)

def plotFunc(omega):
    plt.plot(ts, np.cos(omega*ts))

w = interactive(plotFunc, omega = FloatSlider(min = 0, max = 12, step = 1, value = 6, orientation = 'vertical'))
box_layout = Layout(display = 'flex', flex_flow = 'row', justify_content = 'center', align_items = 'center')
display(HBox([w.children[-1], w.children[0]], layout = box_layout))

为 IPython Notebook 启用内联后端:

%matplotlib inline

在你的代码末尾:

w.update()
这里有一些解释:

%matplotlib inline commands IPython Documentation

IPython.display.set_matplotlib_formats and IPython.display.set_matplotlib_close 了解有关更改内联后端的其他行为的更多信息。