はじめに

最近,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.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つは,そのまま書き込んでくれるようです.

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

以 上

广告
将在 10 秒后关闭
bannerAds