Jupyter Notebookは,PythonやR, Juliaなどのコードを書いたり実行したり,文章を書いたりするのに開発環境(Mathematicaのノートブックのようなもの)です。
anaconda/python をインストールしていれば,Jupyter Notebookももれなく使えます。
$ jupyter notebook
セルを畳んだりできるように拡張機能(Jupyter notebook extensions)のインストールをする。
$ conda install -c conda-forge jupyter_contrib_nbextensions
$ conda install -c conda-forge jupyter_nbextensions_configurator
$ jupyter nbextension enable codefolding/main
$ jupyter nbextensions_configurator enable
$ jupyter lab
$ conda install nteract_on_jupyter
$ jupyter nteract
jupyter notebookのセルに%
や%%
ではじまるコマンドを書くことで,いろいろな処理ができる。
(ただし,jupyterでRを使うときにはMagic commandは利用できない…みたい)
%run
: 外部コマンドの実行In [2]: % run somscript.py
%timeit
: 実行時間を測るIn [3]: %timeit L=[n**3 for n in range(1000)]
In [4]: %%timeit
L=[]
for n in range(1000):
L.append(n**3)
%paste
, %cpaste
: ペーストJupyter上へのペーストは%paste
か%cpaste
を使う。
%%bash
: shell scriptの実行In [1]: %%bash
echo $PATH
bashコマンドは!
をコマンド名の頭につければjupyter notebook上で使える。変数への代入にも使える。
(ただし,こちらもjupyter labでは未対応…みたい)
%run
: 外部コマンドの実行In [2]: % run somscript.py
%timeit
: 実行時間を測るIn [3]:
filelist=!ls
current=!pwd
!echo "hello"
以下でautomagicを有効にすれば,!
は不要になる。
%automagic=True
起動オプションはjupyter notebook ―help
で表示される。
オプションを指定するための設定ファイルを作りたいときは,まず以下のコマンドで設定ファイルを生成する。
$ jupyter notebook --generate-config
これで,~/.jupyter/jupyter_notebook_config.py
に設定ファイルができるので,必要に応じてこれをいじる。
jupyter notebookに接続するときに入力を要求されるtokenを,事前に設定ファイルに登録したり,起動オプションで指定したりできる。
~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.token = 'xxxxx'
--NotebookApp.token='xxxxx'
jupyter-emacskeysをインストール
$ pip install jupyter-emacskeys
コマンドモード(ESCを押す)で”h”を押すと一覧表示される
remove_cell
)をつける。タグは,View/Cell Toolbar/Tagsで入力可能に。$ jupyter nbconvert nbconvert-example.ipynb --TagRemovePreprocessor.remove_cell_tags='{"remove_cell"}'
以下のように,入力や出力を消すための各種フィルタがある。
TagRemovePreprocessor.remove_input_tags
TagRemovePreprocessor.remove_single_output_tags
TagRemovePreprocessor.remove_all_outputs_tags
Rはhomebrew等で事前にインストールしておく。 Jupyter Notebook の起動前にRコンソールで以下を実行し,Jupyterに(R kernel)をインストールする。
$ r
> install.packages('devtools')
> devtools::install_github('IRkernel/IRkernel')
# or devtools::install_local('IRkernel-master.tar.gz')
> IRkernel::installspec() # to register the kernel in the current R installation
somename.py
が生成されるsomename.py
を修正すると,ipynbファイルの方にも反映される$$
で囲めばOKgit commit前に,シート内にある出力は全部消しておくと,厄介なことにはなりにくい。
jupyter notebook形式でテキストを作ったとき,テキストセルで作った説明文(問題文)は残して, コードセルに入力した解答や出力を全部消したいことがあるので,以下のスクリプトを作った。 ついでに,highlighter extensionを使って挿入されたhighlight tagも消している。
最後に以下でスライドモードで表示を行う。
$ jupyter nbconvert <file name>.ipynb --to slides --post serve
jupyter の拡張機能RISEを使うとお手軽にスライド化できる。
$ conda install -c damianavila82 rise
jupyter notebook のメニューにスライド表示のボタンが出て,それをクリックすれば直ちにプレゼンを出来る。 プレゼン上でプログラムの実行もできる。 どのセルをスライドにするかは,方法1と同様にして選択する。
例えば,コンテンツがページからはみ出るときには,scroll barをつけられる。以下はカスタマイズ例。“Edit→Edit Notebook Metadata"を選択して,以下を追加。
"rise": {
"enable_chalkboard": true,
"height": 768,
"scroll": true,
"transition": "slide",
"width": 1024
},
nbpresentにはスライド作成のいろいろな機能がある。
conda install -c conda-forge nbpresent
GitHubにJupyter notebookをおくと,Jupyter Notebook Viewerで表示できる。プレゼン形式にも出来る。
Voilaを使うと,ソースコードは隠して,markdown部分と出力のみ見せられる。 スライダーなどでinteractive widget化しておくと,スライダーを操作しながらデモをできる。
インストール
$ conda install -c conda-forge voila
$ pip install voila-gridstack
使う
$ voila some.ipynb
XeLaTeXをインスールしておくこと。
方法1: texに変換してからpdfにする
jupyter nbconvert --to latex notebook_name.ipynb
方法2:
jupyterのメニューからpdfを出力したいときは,/usr/local/anaconda3/lib/python3.6/site-packages/nbconvert/templates/latex/base.tplx
を修正。
--- base.tplx.org 2019-12-20 11:30:09.881902845 +0900
+++ base.tplx 2019-12-20 11:32:55.112929136 +0900
@@ -21,6 +21,10 @@
\else
\usepackage{fontspec}
\fi
+ \usepackage{xeCJK}
+ \setCJKmainfont[BoldFont=IPAexGothic]{IPAexMincho}
+ \setCJKsansfont{IPAexGothic}
+ \setCJKmonofont{IPAGothic}
% Basic figure setup, for now with no caption control since it's done
% automatically by Pandoc (which extracts ![](path) syntax from Markdown).
問題点
Markdownに!()[]
を使って埋め込んだ画像は出力されるが,htmlタグ"<img src="images/imagefile.png">
で埋め込んだ画像は消えてなくなる。画像サイズを変えるにはhtmlタグを使わないといけないので困る。
日本語キーボードの問題らしい。 以下のサイトに書いてあるようににショートカット設定をする。
Jupyter Notebook Ctrl+Shift+- (splitting cell) does not work
$ brew cask install jupyter-notebook-viewer