Jupyter自定义设置详解
今天专门花时间总结梳理一下jupyter的一些高级设置,jupyter我已经介绍过一次基本内容了,Setup and Linux | James Chen’s Blogs,尤其是如何在服务器运行jupyter并且在本地浏览器显示,简直是使用python进行机器学习、深度学习、大数据的工作者的巨大福音。作为一个重度python&jupyter使用者,我已经习惯于在jupyter上进行大量的实验以及一次性的小工作、作业,需要跑很久的代码才会在运行通过后用VSCode编辑一下提交上去跑。用jupyter写了很多脚本,尤其适合可视化、展示和教学。可以在我的GitHub找到很多用jupyter写的代码,事实上很多教程和实验大家也都习惯于jupyter做了,比如我在这篇Deep Learning Practice介绍的资源中就有大量用jupyter写的。
下面就讲一下jupyter的一些高级玩法。
自定义主题
https://github.com/dunovank/jupyter-themes
jupyter extension
相见恨晚,用着非常非常爽,强烈推荐
https://github.com/ipython-contrib/jupyter_contrib_nbextensions
1 |
pip install jupyter_contrib_nbextensions |
推荐使用的插件
table of contents
设置着很简单,找到后打个对勾就行了,效果很棒:
jupyter支持markdown,只需要将某个代码框选为markdown格式,使用table of contents插件,就会自动在左边栏生成目录。对于写的很长的代码,可以帮助整理思路,快速定位代码。大家用jupyter一般是做前期的各种各样的实验,思路可能比较发散,所以用table of contents可以帮忙梳理思路,也方便以后再寻找、理解代码
freeze
可以“冰冻”某个代码块,有个代码块儿暂时不再使用,就可以暂时冰冻,这样就无法运行,也不会被误删除。是个很有用的功能。
highlighter
可以高亮注释
Gist-it
Adds a button to publish the current notebook as a gist
Snippets menu
帮助懒人插入一些经典库的经典方法的代码块,感觉很不错哦,比去Stack Overflow搜要快一些~不过支持的还是比较少的。
Snippet:
强烈强烈推荐!感觉有望帮助节约不少写代码的时间

This extension adds a drop-down menu to the IPython toolbar that allows easy insertion of code snippet cells into the current notebook. The code snippets are defined in a JSON file in nbextensions/snippets/snippets.json and an example snippet is included with this extension
Snippets are specified by adding a new JSON block to the list of existing snippets in $(jupyter —data-dir)/nbextensions/snippets/snippets.json. (I put my customized json file in jupyter-notebooks directory in /Users/james/) For example, to add a new snippet that imports numpy, matplotlib, and a print statement, the JSON file should be modified。
先分别列一下各种情景下需要导入哪些库:
Basic science
1 |
import argparse, sys, os, errno |
Highlevel plot
1 |
import matplotlib.animation as animation |
Deeplearning keras
1 |
import keras |
Pytorch
1 |
import torch |
总结起来就是下面这样,注意语法别错,东西一多看着还是很头疼的,配置好就可以用了。
1 |
{
|
这个配置这里坑了我很久,主要是snippets不会显示错误信息,debug得很仔细一个一个找,因此花了很久发现是keras部分的几个破双引号冲突了,还有一个注释竟然也忘删了,折腾了很久才配置好。用sublime text是可以很容易发现语法错误的,可惜最开始没在意
本地的snippets.json在:
1 |
/Users/james/Library/Jupyter/nbextensions/snippets/snippets.json |
我在james目录下也放了一份,因为最近估计需要不断更新完善,所以就放一份在:
1 |
/Users/james/snippets.json |
每次修改后,需要同步到本地以及ibme、cnode、hpc1几个机器上面,这样不用我几个地方都各自改一遍,费事。
首先找到各个机器上的json文件在哪儿
1 |
$(jupyter --data-dir)/nbextensions/snippets/snippets.json |
然后写个同步的脚本syncsnip.sh
1 |
cp /Users/james/snippets.json /Users/james/Library/Jupyter/nbextensions/snippets/snippets.json |
然后做个同步快捷方式:
1 |
alias snip='bash syncsnip.sh' |
测试几个机器的配置均通过
配置好了还是很美的:

jupyter dashboard
看起来是可以进一步帮助展示的利器
1 |
pip install jupyter_dashboards |
不过用了一下,过分自动化的布局反而限制的比较死,,不太好看
hide input
不显示code,只显示output,适合展示时用。
ipywidgets interactive coding
使用专为jupyter设计的ipywidgets,可以更好地展示、调整代码,尤其适合运行较快、有较多参数需要探索、选取的场合,比如绘图
以使用python的seaborn绘制boxplot为例,我们有多个参数待选,比如:
- context & style 可以设置不同的背景和字体风格
- width & height 设置图片的宽和高
- boxplot/violinplot 使用传统的box表示还是用可以同时表示点的分布密度的violinplot表示
- showdot & showbox 可以选择是否显示点,以及是否显示box,或者同时都显示、都不显示
- fondsize & dotsize,分别调整文字大小和点的大小
- boxwidth 调整box和violin的宽度
- ylim 调整纵坐标的最大与最小值
- compareheight* 调整几个注释文字距离box顶点的高度
- palettesind 选择第几套配色方案
- saturation 调整色彩饱和度
可以看到python的绘图函数一般都留有很大的调整空间,可选参数较多,可以组合出很多效果,但是也给调整带来了很多麻烦。如果把这些参数都传入绘图函数中,每次调整其中的一个或几个,依照经验来调整,效率就比较低。这个时候就可以考虑使用ipywidgets方便地调整这些参数。通过ipywidgets,可以把这些控制浮点型、整型或字符串控制参数用Float、Int slider、Dropdown,RadioButtion等控制,不需要每次更改参数再运行代码框,可以快速地调整出自己想要的图像。
效果如下:

一份示例代码plots_roc.ipynb放在了something more
Jupyter自定义设置详解的更多相关文章
- 绘制基本图形和线型(StrokeStyle)的设置详解
绘制基本图形和线型(StrokeStyle)的设置详解 目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网 ...
- loadrunner 运行脚本-Run-time Settings-Browser Enmulation设置详解
运行脚本-Run-time Settings-Browser Enmulation设置详解 by:授客 QQ:1033553122 浏览器模拟 所有Internet Vuser Header包含一个标 ...
- Android 自定义 View 详解
View 的绘制系列文章: Android View 绘制流程之 DecorView 与 ViewRootImpl Android View 的绘制流程之 Measure 过程详解 (一) Andro ...
- Mac OS 网络设置教程 wifi设置与宽带设置详解
虽然所有设备连接无线网络的步骤都相差无几,但是Mac与windows系统还是不相同的,那么,苹果Mac怎么连接无线网络呢?针对此问题,本文就为大家介绍Mac网络的设置教程,有兴趣的朋友们可以了解下.如 ...
- 【转】Eclipse Java注释模板设置详解
Eclipse Java注释模板设置详解 设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后 ...
- Win7 NFS 设置详解 | X-Space
Win7 NFS 设置详解 | X-Space Win7 NFS 设置详解
- [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
[转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/st ...
- fiddler软件测试——Fiddler抓取https设置详解(图文)(摘抄)
随笔- 8 文章- 0 评论- 0 fiddler软件测试——Fiddler抓取https设置详解(图文) 强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)转 本文主要说 ...
- fiddler软件测试——Fiddler抓取https设置详解(图文)
强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)转 本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各 ...
随机推荐
- ant design for vue 刷新页面,根据当前路由选中相应菜单
<a-menu theme="dark" mode="horizontal" class="menu__a" @select=&quo ...
- Excel VBA发送Email时自动允许Outlook安全对话框
在Outlook的宏安全性设置如果选择了“为所有宏提供通知” 并且,在[编程访问]中选择了“总是向我发出警告” 在其他VBA中创建邮件过程中,如果修改Recipients或者执行Send方法,都会弹出 ...
- C++ 进程和匿名管道使用学习
平台 Windows10 + VS2015 学习内容 进程的创建使用(CreateProcess方式) 父子进程间匿名管道通信 相关函数及参数介绍 CreatePipe函数:该的原型为 CreateP ...
- setTimeout()执行时序
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇四:配置Robbin负载均衡)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...
- Android之布局Application类
转载:https://blog.csdn.net/pi9nc/article/details/11200969 一 Application源码描述 * Base class for maintaini ...
- GPIO口的脚本配置之——全志H3script.bin
此脚本的作用之一是配置GPIO的默认状态: 如:功能,内部电阻状态,驱动能力等. 1.但是直接打开script.bin 文件则会出现乱码,那么我们怎么才可以打开并更改该脚本的配置呢? 在路径uboot ...
- 从 0 到 1 到完美,写一个 js 库、node 库、前端组件库
之前讲了很多关于项目工程化.前端架构.前端构建等方面的技术,这次说说怎么写一个完美的第三方库. 1. 选择合适的规范来写代码 js 模块化的发展大致有这样一个过程 iife => commonj ...
- Python 语言基础
Python 语言基础 Python 开发环境 计算机组成 编程语言(计算机语言)是人们为了控制计算机,而设计的一种符号和文字的组合,从而实现向计算机发出指令. 形式是符号和文字的组合 目的是为了控制 ...
- 分享几个4412开发板新录制的视频,不是VIP也能看
如果能点个赞就更好啦 iTOP4412开发板介绍https://www.bilibili.com/video/av74453392 iTOP4412开发板系统编程前言https://www.bilib ...