我尝试在binder上共享一个github repo。在本地,我使用matplotlib和@interact的交互式绘图工作正常。在活页夹上,它工作了一半。当滑块值改变时,相同的代码将静态图像添加到活页夹笔记本的单元格输出中。
问题:如何修复活页夹行为并制作交互式打印?
git存储库https://github.com/queezz/Complex_Numbers
我的笔记本看起来像这样:
%pylab inline
from ipywidgets import interact, widgets
x = np.linspace(0,np.pi,100)
@interact
def plot_interactive(a=widgets.FloatSlider(min=1, max=10, val=1)):
plot(x,np.sin(x*a))
gca().set_aspect('equal')
ylim(-1.1,1.1)
截图自活页夹:
2条答案
按热度按时间2ic8powd1#
找到了一个很好的工作示例:https://github.com/Kapernikov/ipywidgets-tutorial
其要点是使用
%matplotlib widget
和@widgets.interact
。现在似乎不鼓励使用
%pylab inline
了,请看这个git问题。我从教程中复制了一部分代码,它产生的结果与问题中想要的结果相同。
0s0u357o2#
今天没能得到@queez用"互动"来工作的答案(2023年初更新后见下图);然而,ipywidgets文档目前包含了一个matplotlib示例,它使用了'interactive',我可以使用它并修改@qqueezz的solution来使其工作,这似乎是一个更精简的交互式绘图方法。
您可以转到存储库here,通过选择"以笔记本模式开始的直接链接:"下的"以笔记本形式开始matplotlib & widget演示"右侧的
launch binder
标记来启动会话。或者单击here通过MyBinder直接启动到该笔记本。
后来(2023年初),我在JupyterLab中使用
ipympl
发现queez在Kapernikov: Ipywidgets with matplotlib中的代码确实可以与interact
一起工作。还没有跟上变化的东西;但是他想指出。