使用交互小部件在jupyter中闪烁和跳跃输出

时间:2018-11-26 09:00:27

标签: python jupyter

我正在尝试在Jupyter笔记本中使用Interact。在该页面上有一点

  

有时,您可能会注意到交互输出的闪烁和跳跃,从而导致笔记本滚动位置在更新输出时发生变化。交互式控件具有布局,因此我们可以将其高度设置为适当的值(当前手动选择),以使其在更新时不会改变大小。

当我尝试复制示例时,我恰好遇到了这个问题。

以下代码段...

%matplotlib inline
from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np

def f(m, b):
    plt.figure(2)
    x = np.linspace(-10, 10, num=1000)
    plt.plot(x, m * x + b)
    plt.ylim(-5, 5)
    plt.show()

interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot

...应该产生以下输出:

enter image description here

但是我只会得到这个:

enter image description here

准确地说,滑块会弹出半秒钟,但似乎被图形覆盖了。我猜这正是他们正在解决的问题。因此,我认为我可以使用与350中的output.layout.height = '350px'不同的值来解决该问题,但是绝对不能成功。我已经尝试过100、200、250、300、750和1400。

那么还有其他原因引起问题吗?

谢谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

我刚刚检查了此处提出的解决方案:

Jupyter Notebook: interactive plot with widgets

与最近的经典Jupyter一起使用。

为避免闪烁,您可以切换到使用 https://github.com/AaronWatters/jp_doodle-看例子 在“功能”下命名为“互动” *。 jp_doodle dual_canvas 有一个上下文管理器可以禁止中间更新。