防備を兼ねて。

ちょっとした野暮用があって、直交座標系のグラフ上に線をプロットして絵作りする必要が出てきてしまったので、 Jupyter Noteboot を使って試してみることにした。

実行環境について

Jupyter Notebook を試すことのできる環境の選択肢は様々あるので、ユースケースに合ったものを使うとよい。以下は今回試したもの。

  • Google Colab
    Google のアカウントがあってオンラインで作業できるならこれ。 https://colab.research.google.com/ にアクセスするだけですぐに始められるし、環境構築する必要もない。
    特に難しいこともないのでここでは割愛。
  • Web App (Local)
    pip を使って自分の手元に Notebook 環境を作り、 Web ブラウザでアクセスして利用する方法。コンピューターに python が入っていればとりあえず使える。
  • VSCode (Local)
    pip を使って自分の手元に Notebook 環境を作り、 VSCode の拡張機能を使って利用する方法。VSCode の機能が使える。

Web App

適当なディレクトリで以下のコマンドを実行して、 Jupyter Notebook 環境をインストールする。

$ python3 -m venv venv
$ ./venv/bin/activate
(venv)$ pip3 install jupyter matplotlib
# (中略)

起動する。

(venv)$ jupyter notebook

コンソールにアクセス用の URL が表示されるので、 Web ブラウザを使ってアクセスする。

VSCode

VSCode の Jupyter 拡張機能をインストールする。
https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter

上記 Web App セクションのインストールコマンド (pip3 install jupyter matplotlib まで) を実行する。

venv を作成したディレクトリを VSCode のワークスペースとして開き (code .)、 任意のノートブックファイル (.ipynb) を作成する。
VSCode の Explorer ペインから ipynb ファイルを選択すると、通常のエディタとは異なる、ノートブック編集用エディタが開く。

F1 キーを押下し、 Notebook: Select Notebook Kernel コマンドを呼び出す。利用するカーネルとして、 ./venv/bin/python を選択する。

所感

ざっと試したところ、VSCode であれば Python 拡張機能の支援 (Type suggestionなど) を受けながら作業ができるため、非常に快適だった。

import matplotlib.pyplot as plt
import math

circle_points = [(math.cos(math.radians(x)),math.sin(math.radians(x))) for x in range(0, 360, 12)]
for p in circle_points:
    plt.plot(p[0], p[1], 'xb')

star_points = [(math.cos(math.radians(x)),math.sin(math.radians(x))) for x in range(0 + 90, 720, 144)]
star_after_points = [(math.cos(math.radians(x)),math.sin(math.radians(x))) for x in range(144 + 90, 720 + 144, 144)]
for i in range(5):
    plt.plot([star_points[i][0], star_after_points[i][0]], [star_points[i][1], star_after_points[i][1]], 'r-')


plt.axis('equal')
plt.draw()