jupyter笔记本电脑的扩展部件。

ipyumbrella的Python项目详细描述


伊普尤姆布拉

改进了集合的ipyWidget。在

在Jupyter中制作widget是非常有用的,它释放了很多潜力。但我经常发现,使用它们确实很麻烦,我经常编写包装器函数来捕获输出,将它们添加到选项卡中,并设置标题(使用子索引。。。。。啊)。在

这将大部分功能包装起来,这样您就可以无需思考就可以包装for循环,并且每次迭代都将输出到一个新的选项卡,从iterable元素解析标题。耶!在

N=6defplot_something(i=0,n=N):plt.plot([min(i,n/2),min(n-i,n/2)])plt.ylim(0,n/2+1)plt.title('i={}'.format(i))
^{pr2}$

安装

pip install ipyumbrella

使用

小工具

  • Carousel:横向滚动输出
  • Tabs:与ipywidgets相同
  • Accordion:与ipywidgets相同

所有描述的方法都适用于这里的所有小部件。因此您可以交换示例中的任何小部件。在

方便的在线显示

我来自Javascript,所以我已经习惯了链接。您可以使用.display().D内联显示小部件,然后再添加任何项目。这样您就不必创建新行来存储变量,也不用创建新行来显示小部件。在

在开始之前显示小部件对于长时间运行的任务至关重要,这样您就可以在运行时看到进度。在

carousel=uw.Carousel()withcarousel.D.item():plot_something()# all equivalent - should display 5 times (including the time above)carousel.display()carousel.Ddisplay(carousel)carousel# last line in cell

Iterable(.items(iterable)

有时,您有一个项目列表或生成器,希望在选项卡或旋转木马中显示这些项目。当你要绘制20个图形,并且一个接一个地在另一个上面绘制时,这很有用,这会让你无法忍受在笔记本上导航。您可以选择设置一个title函数,该函数将接收当前的iterable项作为输入。在

uw.h4('Carousel').display()foriinuw.Carousel().D.items(range(N),title='item {}'.format):plot_something(i)uw.h4('Tabs').display()foriinuw.Tabs().D.items(range(N),title='this is tab {}'.format):plot_something(i)uw.h4('Accordion').display()foriinuw.Accordion().D.items(range(N),title='see: {}'.format):plot_something(i)

功能捕捉(@.function

这比包装iterable要灵活一些。此函数中的任何内容都将添加到它自己的选项卡中。在

tb=uw.Tabs().D@tb.function(title='plotting {}'.format)deftabfunc(i,**kw):plot_something(i,**kw)tabfunc(3)tabfunc(4,n=5)tabfunc(5)

上下文管理器(with .item():

这是其他函数的基本机制。它的作用是,创建一个新的选项卡并附加一个ipywidgets.输出小装置。然后它使用output小部件来捕获所有输出,比如prints和表演()以便在选项卡中显示。在

carousel=uw.Carousel().Dforiinrange(N):withcarousel.item():plot_something(i)acc=uw.Accordion().Dforiinrange(N):withacc.item(title='Item {}'.format(i)):plot_something(i)

在内部,它正在这样做。所以如果你想,你可以。在

# manually add an output as a tab abovetabs=uw.Tabs().Dwithtabs.append(uw.Output(),title='something'):plot_something(2)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java CXF和授权   java在网站中部署使用swing创建的表单   java为什么getHeaderField()返回一个字符串,其中getHeaderFields()返回HttpUrlConnection中的Map<String,List<String>>   java如何检测恶意数据包?   webview中的java网页为空   java SWT图像资源,用于将我的所有图像存储在一个位置   java计算数组的最大长度,使平均值小于给定值   java“发件人电话号码无效”和美国号码   将Swing组件作为内容的自定义Java工具提示不会显示   在并发HashMap中重新灰化期间的java检索   Java 7和Tomcat 7.0.64 ClassFormatException:常量池中的字节标记无效   使用JUnit的java assertNull因NullPointerException失败   java内存中的文件是否与文件系统中的文件大小相同?   循环内实例化的类型的java注入依赖项