Closed12
Jupyterを使いたい


Jupyter開発環境
ローカルで動作させるものにはJupyter LabとJupyter Notebookがある。[1]
Jupyter LabはJupyter Notebookの後継であり、機能も強化されているためJupyter Labがおすすめ。
またTry JupyterやGoogle 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を使用して開発環境を構築する。

目的
下記3つを実現するための環境を構築し、実際に動作を確認する。
- Jupyter labをDockerコンテナ内で起動する。
- JupyterファイルをVS Codeで編集する。
- JupyterファイルをGit管理する。
事前インストール
- VS Code
- Docker CLI
- Git
- devcontainer拡張機能
- Jupyter拡張機能
今回の導入手順
- 適当なワークスペースを用意する。
- 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"
]
}
}
}
- devcontainer拡張機能の「Reopen in Container」からワークスペースをContainer内で開きなおす。
- Jupyter Notebookファイル(
.ipynb
)を作成し編集。

ブラウザでのdevcontainerは重くてあまり実用的ではなかった。
今後に期待。

fig, ax = plt.subplots()
の意味

日本語フォントの使用方法

matplotlib-cpp
C++コードをpltで使用する方法。
pybind11
C++コードをPythonで動かす。

軸を中心で交差させる方法
# 下軸と左軸をそれぞれ中央へもってくる
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)
軸の先端が矢印で(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)

文字を表示
Texのフォントで数式を表示plt.rcParams['mathtext.fontset'] = 'cm'

点線で書いたりマーカーを付けたり

今後の課題
-
.ipynb
ファイルのGit管理どうすべきかわからない。- ipynbファイルの中身がjsonなのでdiffが見にくい。
- markdownとpyと画像に分けて保存したくない?
- .ipynb_checkpointsはどうすべきか。
- Ctrl + shift + Pして
> Simple Browser: Show
してリンクを貼っても何故か開けない。
どのリンクを入力しても開けないのでUbunutu固有の問題か。
nbconvertで解決したい!
このスクラップは2024/04/07にクローズされました