Nbextensions 拓展

笔记本扩展(nbextensions)是一种JavaScript模块,可以加载到笔记本前端页面上。

Hinterland 智能补全

Hinterland功能可以让你每敲完一个键,就出现下拉菜单,可以直接选中你需要的词汇。
拓展和小工具 - 图1

Snippets 插入代码段

Snippets在工具栏里加了一个下拉菜单,可以非常方便的直接插入代码段,完全不用手动敲。

拓展和小工具 - 图2

相邻模式

拆分笔记本中的单元格,改成相邻的模式,看起来就像分了两栏。

拓展和小工具 - 图3

生成目录

这个功能可以自动找到所有的标题,生成目录。
并且这个目录还是移动的呦,你可以放在侧边栏,也可以拖动到任何你喜欢的地方悬浮起来。

拓展和小工具 - 图4

折叠一个标题下的全部内容

如果你的代码太长,觉得滚动过去太麻烦,可以直接折叠掉。

拓展和小工具 - 图5

Autopep8 代码格式化

一键美化代码,强迫症的福音。

拓展和小工具 - 图6

安装方法

最后看一下怎么装,需要用到conda:

  1. conda install -c conda-forge jupyter_nbextensions_configurator

或者用pip:

  1. pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install
  2. #incase you get permission errors on MacOS,
  3. pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install --us

然后把Jupyter打开,你就可以看到NBextensions这个选项卡了。

拓展和小工具 - 图7

找不到的话就去菜单的Edit里面找。

拓展和小工具 - 图8

搞定。

Jupyter 小工具

还有一些Jupyter小工具,比如滑块、文本框之类的部分,可以做一些方便的交互。

滑块

拓展和小工具 - 图9

  1. def f(x):
  2. return x
  3. # Generate a slider
  4. interact(f, x=10,);

布尔值生成复选框

拓展和小工具 - 图10

  1. # Booleans generate check-boxes
  2. interact(f, x=True);

字符串生成文本区域

拓展和小工具 - 图11

  1. # Strings generate text areas
  2. interact(f, x='Hi there!');

播放器

拓展和小工具 - 图12

  1. play = widgets.Play(
  2. # interval=10,
  3. value=50,
  4. min=0,
  5. max=100,
  6. step=1,
  7. description="Press play",
  8. disabled=False
  9. )
  10. slider = widgets.IntSlider()
  11. widgets.jslink((play, 'value'), (slider, 'value'))
  12. widgets.HBox([play, slider])

日历

拓展和小工具 - 图13

  1. widgets.DatePicker(
  2. description='Pick a Date',
  3. disabled=False
  4. )

不过这个部件只能咋Chrome和Edge里用,Firefox和Safari不支持。

调色盘

拓展和小工具 - 图14

  1. widgets.ColorPicker(
  2. concise=False,
  3. description='Pick a color',
  4. value='blue',
  5. disabled=False
  6. )

标签

拓展和小工具 - 图15

  1. tab_contents = ['P0', 'P1', 'P2', 'P3', 'P4']
  2. children = [widgets.Text(description=name) for name in tab_contents]
  3. tab = widgets.Tab()
  4. tab.children = children
  5. for i in range(len(children)):
  6. tab.set_title(i, str(i))
  7. tab

其他的小部件,可以在文末的传送门跳转到GitHub寻找。

安装方法

  1. # pip
  2. pip install ipywidgets
  3. jupyter nbextension enable --py widgetsnbextension
  4. # Conda
  5. conda install -c conda-forge ipywidgets
  6. #Installing ipywidgets with conda automatically enables the extension

使用“interact”功能自动创建UI控件,这是使用IPython最方便的方法。

  1. # Start with some imports!
  2. from ipywidgets import interact
  3. import ipywidgets as widgets

Qgrid 筛选数据

Qgrid也是一个Jupyter的小部件,不过它主要用于数据帧,装上之后,就可以像操作Excel里的筛选功能一样,方便的处理数据。

拓展和小工具 - 图16

安装方法

用pip安装:

  1. pip install qgrid
  2. jupyter nbextension enable --py --sys-prefix qgrid
  3. # only required if you have not enabled the ipywidgets nbextension yet
  4. jupyter nbextension enable --py --sys-prefix widgetsnbextension

用conda安装:

  1. # only required if you have not added conda-forge to your channels yet
  2. conda config --add channels conda-forge
  3. conda install qgrid