PythonistaではないMacユーザーが Jupyter Notebook使い始める時にやったこと


# 本記事のサマリ
* とりあえずpyenvをつかって、anaconda(データ分析系のライブラリが同梱されたPythonパッケージ?)をインストール
* グラフのタイトルを日本語に対応できる様に設定を調整
* コード部分の入力・出力を等幅フォントにして見栄えを調整

### 対象読者
普段Pythonをつかっていない方で、データ分析にJupyter Notebookを使いたいなぁと思った方向け。

### 動作確認バージョン
```
pyenv --version
# -> pyenv 1.1.4
```

```
python --version
# ->Python 3.6.1 :: Anaconda 4.4.0 (x86_64)
```

### 前提条件
* homebrewがインストールされていること。
* 使用しているshellは、bash

### 経緯
普段は、データ分析にRを使っていたのですが、Macのアップデートとか自分の不手際で、RStudioの環境が壊れてしまったので、これを機に、Rodeo とか Jupyterとか、Pythonベースのデータ分析環境を整えて、乗り換えようかと思った次第です。
導入は、簡単にできたのですが、日本語の設定とか忘れがちなので、残しておきます。

## 環境構築

### pyenvのインストールと設定
調べてみると、virtualenvを使って、環境を仮想的に作り出して切り替えるというのもよくやっている様に見えましたが、僕は普段はpythonを使っていないので、virtualenvは使わずにpyenvをつかって、Pythonのバージョンだけ切り替えられる様にしました。

とりあえず、pyenvをインストールするために、以下を実行します。
`brew install pyenv`


さらに、利用できる様にpathの設定をします。
以下の様に「~/.bash_profile」にパスの設定を追記してください。

```~/.bash_profile:bash
# ~ 注略 ~
PYENV_ROOT=~/.pyenv
export PATH=$PATH:$PYENV_ROOT/bin
eval "$(pyenv init -)"
```

ターミナルを再起動するか、「. ~/.bash_profile」を実行して、パスを通します。
`pyenv --version` と実行して、バージョンが表示されればOKです。

### Anacondaのインストール
Anacondaは、Pythonでデファクトスタンダード(と言っても過言ではない)となっている、NumPy: 行列演算などを簡単に扱うためのライブラリ、SciPy: 科学計算用ライブラリ、matplotlib: グラフ描画用ライブラリ、pandas: データの操作をやりやすくするためのライブラリが同梱されたPythonのパッケージです。(詳しくないので、間違っていたらご指摘ください)
Pythonバリバリではない人は、このパッケージをインストールすると楽に環境が構築できるので、これを使います。

バージョンの確認

```
pyenv install --list | grep anaconda
# -> 注略 anaconda3-4.4.0
```

とりあえず、一番新しいのが「anaconda3-4.4.0」だったので、これをインストールします。

```
pyenv install anaconda3-4.4.0
```


さらに、インストールしたバージョンを利用する様に設定したいので、以下のコマンドを実行します。

```
pyenv global anaconda3-4.4.0
pyenv rehash
```

pyenvがインストールしたPythonを使うと都合がわるい場合は、以下のコマンドで戻しましょう。

```
pyenv version
pyenv rehash
```

細かい部分は、違う可能性がありますが、`python --version` を実行した時に、以下の様な感じでAnaconda版が利用されているのが確認できればOKです。

```
python --version
# -> Python 3.6.1 :: Anaconda 4.4.0 (x86_64)
```


ちなみに、`jupyter notebook` を利用する場合は、ディレクトリに「.python-version」というファイルを作って、「anaconda3-4.4.0」と書いておくと、それを利用してくれるので、環境を汚したくない人は、良いかもしれません。

## Jupyter Notebook を動かしてみる
ターミナルを開いて、以下のコマンドを実行してみましょう。

```
jupyter notebook
```

ブラウザが立ち上がって、以下の様な画面が出たらOKです。

![Kobito.VUvu7b.png](https://qiita-image-store.s3.amazonaws.com/0/47854/664f4872-6d78-975a-4465-c83b10149733.png "Kobito.VUvu7b.png")

ついでに、何か実行してみましょう。Newをクリックして、Notebook: Python3をクリックしてみください。

こんな風に、新しいNotebookができました。

![Kobito.g8CsAI.png](https://qiita-image-store.s3.amazonaws.com/0/47854/c6a43545-5837-1267-d051-3e6446ed55f6.png "Kobito.g8CsAI.png")


動作を確認するために、テキストエリアに以下のプログラムを入力してください。

```python:sample.py
import matplotlib.pyplot as plt
plt.style.use('ggplot')

figure = plt.figure()
ax     = figure.add_subplot(1, 1, 1)

data = [0, 1, 2]
ax.plot(data)

ax.set_ylabel('Y軸用ラベル')
ax.set_xlabel('x軸用ラベル')

plt.show()
```

実行結果は、こんな感じです。

![Kobito.9Kz0Fz.png](https://qiita-image-store.s3.amazonaws.com/0/47854/0f3e9590-f8dd-113b-a7ca-bc65f9f879c1.png "Kobito.9Kz0Fz.png")

## 日本語の設定
先ほどの、実行結果の通り、このままだとグラフに日本語が表示できません。また、等幅フォントをつかっていないので、プログラムを書いていると縦が揃わないのでストレスが溜まります。
なので、日本語フォントを使う様に設定しましょう。
僕は、「Ricty Diminished」をよく使うので、それを使う様に設定してみます。

### フォントのインストール
以下のコマンドを実行してください。

```
brew tap caskroom/fonts
brew cask install font-ricty-diminished
```

### グラフ用の設定
matplotlibの設定に、フォントの設定をします。

```
# フォントのキャッシュを削除
rm ~/.matplotlib/fontList.py3k.cache
touch ~/.matplotlib/matplotlibrc
```

```~/.matplotlib/matplotlibrc
font.family : Ricty Diminished,sans-serif
```

### コード入力エリアの設定
続いて、コードの入出力のフォントの設定をします。

```
touch ~/.jupyter/custom/custom.css
# customディレクトリがない場合はcustomディレクトリを作成する
mkdir -p ~/.jupyter/custom
```

```~/.jupyter/custom/custom.css
.CodeMirror pre, .output pre { font-family: 'Ricty Diminished', Monaco, monospace; }
```

### 動作確認
一旦 jupyter notebookを停止(Ctrl + C して、[y/n]を聞かれたら、yを入力)して、再度 `jupyter notebook` で起動してみてください。

以下の様な感じで、グラフ部分が豆腐ではなくなっているのと、`figure = ` と `ax     = ` のイコール記号のインデントが揃っていればOKです。
![Kobito.azoBrM.png](https://qiita-image-store.s3.amazonaws.com/0/47854/a7bdc9c2-4eaa-4341-d645-b237ff8a1fcc.png "Kobito.azoBrM.png")

それでは、良い、jupyterライフを