LoginSignup
15
10

More than 5 years have passed since last update.

Jupyter Notebookの本道ではないかもしれない?使い方

Last updated at Posted at 2017-03-20

はじめに

最近,Jupyter Notebook を導入し,いじっているが,とても楽しい.

仕事でも活用している.とはいっても私はプログラマではないので,「開発」とかそういう言い方はできないが,設計技術者なので簡単な数値計算は自分で主に Python3 でプログラムを作って行っている.

この際,主計算のプログラム,グラフ化のプログラム,計算理論やプログラミング上のメモなどを1ファイルに残しておけるところが,あとで見直すときに便利だし,気に入っている.

さて,今回の話題であるが,「Jupyter Notebookの本道ではないかもしれない?使い方」と題してみた.「本道ではないかもしれない」というのは,New で Python3 を選んでおきながら,全く Python を使っていないためである.やっていることは,本来 Terminal で動かしていた,GMT (Generic Mapping Tools) や ImageMagick を Jupyter Notebook から使ってしまおうというものである.
別に大したことではないが,今後の活用の可能性を広げるため,実験的に行ってみたものである.

ちなみに使用マシンは,MacBook Pro (Retina, 13-inch, Mid 2014)である.

これまでのやり方

これまでは,GMT で作図する場合,以下のステップが必要であった.

  • テキストエディタによる GMT および ImageMagick コマンドのスクリプト作成・保存 (GMT は eps 出力しかできないので,報告書や html に貼り付けるため png に変換するところまでを含むスクリプトを作成する)
  • Terninal を立ち上げ,スクリプトを実行
  • 作成画像数が少ない場合は Preview による確認
  • 作成画像数が多い場合は html の table タグと img タグで画像を配置・表示する文書を作成し,これを実行して全体を把握
  • 必要に応じて,エディタを立ち上げ修正,気に入るまで上記ステップを繰り返す.

ここまでで,少なくとも,(1)テキストエディタ,(2)terminal,(3)Preview もしくは html(ブラウザ) と3種類のツール類を行ったり来たりしていることになる.

Jupyter Notebook の便利な使い方

Jupyter Notebook は,コードセルに %%bash と書くと,これ以降のシェルスクリプトを実行してくれる機能がある.この機能を使って,本来 Terminal で実行していた GMT と ImageMagick のコマンドを Jupyter Notebook で実行してしまえ,というものである.
これにより,Jupyter Notebook の1ページ内ですべての作業を完結することができるはずである.

Jupyter Notebook画面のスクリーンショットを以下に示す.
なお,この記事は「使い方」に関するものなので,実際に使っているスクリプトの詳細は省略する.

Jupyter Notebook の Code セルに GMT と eps から png に変換する ImageMagick コマンドを含むスクリプトを作成.先頭には %%bash を書いておく.

Screenshot 2017-03-21 04.56.26.png

png 画像を表示する html 文書を Markdown セルに記載

Screenshot 2017-03-21 04.56.47.png

Code セル実行後,Markdown セルを実行し,Jupyter Notebook 上で html を表示したところ

Screenshot 2017-03-21 04.59.26.png
Screenshot 2017-03-21 04.59.47.png

結論

思った通りのことができた.

私の環境では,プログラム言語は Python3 しか入れていないが,Jupyter Notebook 付属の機能で,Python および Markdown (html) のみならず,Teminal 上で実行できるコマンド(少なくとも GMT と ImageMagick)は動かすことができる,すなわちプログラム・スクリプト・解説文を含む一連の作業の流れを,再現可能な形で,1ファイルに保存しておくことができることが確認できた.
ただし,今のところ,私ができるレベルまでの話であり,あまり高度なことは試せないのでわからない.

でも Jupyter Notebook,楽しい!

(追加情報:TeXも回せます)

この記事を投稿したあと,Terminal で実行できるものは全て行けそう,ということで,TeX 文書をコンパイルし,pdf を作成してみたら,うまくいきました.
コードセルで %%bash のあとにヒアドキュメントで TeX 文書を作り,platex, dvipdfm を実行して pdf を作成する手順です.

%%bash
cat << EOT > tex_doc.tex
\begin{document}
......
\end{document}
EOT

platex tex_doc.tex
dvipdfmx tex_doc.dvi

注意点としては,表の改行につかう \\(バックスラッシュ2つ)は,\\\\(バックスラッシュ4つ+空白)としないと,TeX 文書をテキストファイルとして保存するときに,本来必要なバックスラッシュ2つの書き込みをしてくれないということです.
バックスラッシュ1つは,そのまま書き込んでくれるようです.

他にも色々試してみようと思います.

以 上

15
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10