はじめに
Python がらみで,Jupyter Notebook というものがあることを知りました.評判がいいようなので,早速試してみることに.
使い方は,Markdown で解説をつけながら,Python コードを添付・実行していくもので,プログラムの解説を行う場合などに便利そうです.Python 以外の言語にも対応しているそうです.
そこで,Jupyter Notebook のインストールと自分用のかんたんな設定,matplotlib でのグラフ作成を事例に作成した Notebook の紹介を行ってみようと思います.
実行環境は,以下のとおりです.
-
- MacBook Pro (Retina, 13-inch, Mid 2014)
- OS: macOS Sierra
Python3のインストール
Python3 は,brew install python3 で普通にインストール.Puyhon3.6.0 がインストールされます.
あとは pip3 をアップグレードし,モジュール類は pip3 でインストールしています.
brew install python3 # Python3.6.0
pip3 install --upgrade setuptools
pip3 install --upgrade pip
brew linkapps
pip3 install numpy
pip3 install scipy
pip3 install matplotlib
pip3 install Pillow
通常のPythonでの使い方
私が通常やっている matplotlib の使い方です.
コマンドラインで入力データファイルと出力画像ファイルを指定.png で出力し,報告書などに貼り付けています.
import numpy as np
import matplotlib.pyplot as plt
import sys
# Parameter setting
param=sys.argv
fnameR=param[1] # input filename
fnameF=param[2] # output image file name
......
plt.savefig(fnameF,dpi=200, bbox_inches='tight', pad_inches=0.2)
plt.show()
plt.close()
Jupyter Notebook のインストール
ここ(http://jupyter.org/install.html) に従ってインストール. ただし,Python3, numpy, scipy, matplotlibは導入済みの環境とします.
pip3 install --upgrade pip
pip3 install jupyter
これでインストールは完了.以下で起動できます.
jupyter notebook
起動すると,起動したディレクトリ内の,子ディレクトリとファイルが並んだ画面が現れます.
アップグレードの場合は以下のコマンド.
pip3 install -U jupyter
Jupyter Nootbook でグラフを表示
Jupyter Notebook で matplotlib のグラフを表示するためには,コードの先頭に以下を記載します.
%matplotlib inline
でも毎回起動のたびに書き込むのはめんどう.そこで...
ここ(http://keisanbutsuriya.hateblo.jp/entry/2015/11/28/220429)に従い,以下を実行.
ipython profile create
これで ~/.ipython/profile_default に ipython_config.py というファイルができるのでこれを開いて編集.
## lines of code to run at IPython startup.
#c.InteractiveShellApp.exec_lines = []
c.InteractiveShellApp.exec_lines = ['%matplotlib inline']
上記の部分3行目 c.InteractiveShellApp.exec_lines = [‘%matplotlib inline’] を書き込みます.
これで,毎回 %matplotlib inline を書き込まずにすみます.
Notebook 作成事例
自分の Mac 内で作成した,.pynb ファイルを Gist に貼り付けたものへのリンクを示します.グラフの装飾過程を示したものですが,このような使い方には,便利ですね.
1つめの事例は,通常の2次元グラフの作成・装飾過程を示しています.
2つめの事例は,2軸グラフの装飾事例です.線種の指定,凡例の表示を工夫してみました.
matplotligでグラフ作成
https://gist.github.com/damyarou/9b453a3e306b959d7b971aa91a32edd7
matplotlibでグラフ作成(2軸グラフ)
https://gist.github.com/damyarou/40ff25ed1da207bdc53db981b0f51a93
nbviewerへのリンクを追加.
http://nbviewer.jupyter.org/gist/damyarou/9b453a3e306b959d7b971aa91a32edd7
http://nbviewer.jupyter.org/gist/damyarou/40ff25ed1da207bdc53db981b0f51a93
以 上