为Jupyter笔记本扩展的小部件。
项目描述
ipyumbrella
改进的ipywidgets集合。
在Jupyter中使用小部件非常有用,它可以释放很多潜力。但我经常发现它们很难使用,我总是不断地编写包装函数来捕获输出、添加到选项卡中,并设置标题(使用子索引……呃)。
这可以将大部分功能封装起来,这样你就可以在不知道的情况下包裹一个for循环,并且每个迭代都会输出到一个新的选项卡中,解析可迭代元素中的标题。YAY!
N = 6
def plot_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))
import ipyumbrella as uw
import matplotlib.pyplot as plt
for i in uw.Carousel().D.items(range(N)):
plot_something(i)
安装
pip install ipyumbrella
用法
小部件
- 轮播:侧向滚动输出
- 选项卡:与ipywidgets相同
- 手风琴:与ipywidgets相同
所有描述的方法都适用于这里的小部件。因此,您可以互换示例中的任何小部件。
方便的行内显示
我来自JavaScript,所以我非常习惯于链式调用。您可以使用.display()
或.D
行内显示您的小部件,而无需在它之前添加任何项目。这可以节省您创建新行以存储变量和显示小部件的行。
在开始之前显示小部件对于长时间运行的任务是必不可少的,这样您可以在运行时看到进度。
carousel = uw.Carousel()
with carousel.D.item():
plot_something()
# all equivalent - should display 5 times (including the time above)
carousel.display()
carousel.D
display(carousel)
carousel # last line in cell
可迭代(.items(iterable)
)
有时您有一个列表或生成器,其中包含您希望显示在选项卡或轮播中的项目。这在您需要绘制约20个图表时非常有用,一个接一个地绘制会使导航笔记本变得难以忍受。您可以可选地设置一个标题函数,它将接收当前可迭代元素作为输入。
uw.h4('Carousel').display()
for i in uw.Carousel().D.items(range(N), title='item {}'.format):
plot_something(i)
uw.h4('Tabs').display()
for i in uw.Tabs().D.items(range(N), title='this is tab {}'.format):
plot_something(i)
uw.h4('Accordion').display()
for i in uw.Accordion().D.items(range(N), title='see: {}'.format):
plot_something(i)
函数捕获(@.function
)
这比封装可迭代项提供了更多的灵活性。从这个函数中输出的任何内容都将添加到它自己的选项卡中。
tb = uw.Tabs().D
@tb.function(title='plotting {}'.format)
def tabfunc(i, **kw):
plot_something(i, **kw)
tabfunc(3)
tabfunc(4, n=5)
tabfunc(5)
上下文管理器(with .item():
)
这是其他功能的基础机制。它的作用是创建一个新标签页并附加一个ipywidgets.Output小部件。然后,它使用输出小部件捕获所有输出,例如打印和plt.show(),以便在标签页中显示。
carousel = uw.Carousel().D
for i in range(N):
with carousel.item():
plot_something(i)
acc = uw.Accordion().D
for i in range(N):
with acc.item(title='Item {}'.format(i)):
plot_something(i)
内部,它会这样做。所以如果你愿意的话,你也可以这样做。
# manually add an output as a tab above
tabs = uw.Tabs().D
with tabs.append(uw.Output(), title='something'):
plot_something(2)
项目详情
关闭
ipyumbrella-0.0.29.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5bbc6829f5baebfc9f8c558ccbba40563fb0488f9e5a4319faa0e1089bc5492c |
|
MD5 | ee428d39f95561f5183d7cb15326ada3 |
|
BLAKE2b-256 | 23616b55622cb2cce6e7aca598549dfd818f6c5d8d7f6960c4d4b99babdc9819 |