Closed12

Jupyterを使いたい

1111

Jupyterとは

Jupyterはプログラムとその実行結果、Markdown形式のドキュメント、LaTeX形式(MathJax)の数式、図表などをまとめて記述できる便利なアプリである。[1]
旧名が"IPython Notebook"であるように昔はPythonしか記述できなかったが最近は記述できる言語が増えているらしい。(bash, C/C++, Deno, Docker, Go, Matlab, SQL, etc...)[2][3]

参考文献
https://qiita.com/y-matsunaga/items/2c7efdae8777f15059e0

脚注
  1. https://chokkan.github.io/python/jupyter.html ↩︎

  2. https://github.com/jupyter/jupyter/wiki/Jupyter-kernels ↩︎

  3. https://note.nkmk.me/jupyter-notebook-kernels-bash/ ↩︎

1111

Jupyter開発環境

ローカルで動作させるものにはJupyter LabとJupyter Notebookがある。[1]
Jupyter LabはJupyter Notebookの後継であり、機能も強化されているためJupyter Labがおすすめ。
またTry JupyterGoogle Colaboratoryを使えばブラウザ上で編集・実行することもできる。

Jupyter Labの環境構築

pipを使用してインストールする。

python3 -m pip install jupyterlab

インストール後、jupyter labで起動できる。
起動後ターミナルに表示されるリンク、あるいはjupyter server listで表示されるリンクからブラウザでのアクセスができる。
またJupyter拡張機能を使用することで、VS CodeでもJupyterの編集・実行ができる。

Jupyter Notebook

Jupyter Notebookの環境構築

python3 -m pip install notebook

jupyter notebookで起動。

上記の問題点

ただし上記の方法ではモジュールがグローバルにインストールされるので、プロジェクト毎のJupyterバージョンの変更などができない。
解決方法としてはvenv, conda, Docker等があるが、今回はDockerを使用して開発環境を構築する。

脚注
  1. https://zenn.dev/yabebe/articles/34d411a9b86938 ↩︎

1111

目的

下記3つを実現するための環境を構築し、実際に動作を確認する。

  • Jupyter labをDockerコンテナ内で起動する。
  • JupyterファイルをVS Codeで編集する。
  • JupyterファイルをGit管理する。

事前インストール

今回の導入手順

  1. 適当なワークスペースを用意する。
  2. devcontainerの準備。
    .devcontainer/Dockerfile.devcontainer/devcontainer.jsonを作成する。[1][2]
.devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/base:jammy

RUN apt-get update && apt-get install -y \
  python3-pip \
  && rm -rf /var/lib/apt/lists/*

RUN pip3 install --no-cache-dir \
  jupyterlab \
  matplotlib \
  numpy
.devcontainer/devcontainer.json
{
  "name": "jupyter",
  "dockerFile": "Dockerfile",
  "postStartCommand": "jupyter lab --no-browser --port=8888",
  "customizations": {
    "vscode": {
      "extensions": [
        "ms-python.python",
        "ms-toolsai.jupyter"
      ]
    }
  }
}
  1. devcontainer拡張機能の「Reopen in Container」からワークスペースをContainer内で開きなおす。
  2. Jupyter Notebookファイル(.ipynb)を作成し編集。
脚注
  1. https://github.com/teruyamato0731/pid-simulation/blob/main/.devcontainer/Dockerfile ↩︎

  2. https://github.com/teruyamato0731/pid-simulation/blob/main/.devcontainer/devcontainer.json ↩︎

1111

軸を中心で交差させる方法

# 下軸と左軸をそれぞれ中央へもってくる
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

# 上軸と右軸を表示しない
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

https://qiita.com/haru1843/items/f36c098d8e106a1f9a7b

軸の先端が矢印で(0,0)を中心とする図

for direction in ["xzero", "yzero"]:
  ax.axis[direction].set_visible(True)
  ax.axis[direction].set_axisline_style("->",size=2)
for direction in ["left", "right", "bottom", "top"]:
  ax.axis[direction].set_visible(False)

https://sabopy.com/py/matplotlib-100/

1111

今後の課題

  • .ipynbファイルのGit管理どうすべきかわからない。
    • ipynbファイルの中身がjsonなのでdiffが見にくい。
    • markdownとpyと画像に分けて保存したくない?
    • .ipynb_checkpointsはどうすべきか。
  • Ctrl + shift + Pして> Simple Browser: Showしてリンクを貼っても何故か開けない。
    どのリンクを入力しても開けないのでUbunutu固有の問題か。

nbconvertで解決したい!

https://zenn.dev/teruyamato0731/scraps/0de9a181ff9ca4

このスクラップは2024/04/07にクローズされました