自転車ツーリングで取得したGPSデータの表現を目的としてPython用のグラフ描画ライブラリであるBokehをよく触っているのですが、覚えたことを整理しておきたくなったのでエントリにまとめておこうと思います。
まずはPythonによるプログラミングの環境構築とBokehのインストール、その後簡単な棒グラフの描画までです。
Pythonのインストール
Windows10または11の場合、PythonのインストールはMicrosoft Storeからが簡単で良いと思います。詳細な手順はMicrosoft公式のドキュメントがわかりやすくて良いと思います。
Windows で Python を使ってみる (初心者向け)
[Microsoft Learn]
プログラムを書くこと自体はメモ帳などのテキストエディターでも可能ですが、せっかくなので上記ドキュメントにもある通り無料のVisual Studio Code(VS Code)を入れておくと良いと思います。入力補完が効いてくれるので入力の手数が少なくて済みます。
Bokehのインストール
続いてBokehをインストールします。Pythonのパッケージ管理システムであるpipを使用します。Powershellまたはターミナルを開き、
pip install bokeh
と入力してEnterキーを押すだけでインストールは自動的に完了します。これでVisual Studio Code内でBokehが使えます。
棒グラフの描画
まずシンプルで理解しやすい棒グラフを描いてみます。
Visual Studio Codeを起動して”ファイル”→”新しいテキストファイル”と選択します。
新しいタブが開き、”言語の選択、または別のエディターを開くを使用して開始します。”という表示が出るので”言語の選択”の部分をクリックします。何の言語でプログラムを書くかを聞いてくるので、Pythonを選択します。
コードは以下のように記述しました。
<python>
#使用モジュール宣言
from bokeh.plotting import figure, show
#グラフの要素
#X軸が月、Y軸が気温
x = [1, 2, 3, 4, 5, 6]
y = [2, 1, 6, 12, 16, 21]
#Figureクラスからインスタンスを生成
#グラフのサイズを縦300ピクセル、横300ピクセルに設定
p = figure(width=300, height=300)
#vbarメソッドでグラフを描画
#X軸のデータをx、Y軸のデータをyに設定
p.vbar(x=x, top=y)
#グラフ描画
show(p)
まず最初にBokehのモジュールを使用する宣言を行います。今回は簡単なグラフを描くだけなのでデータを描画するbokeh.plottingモジュールを宣言します。
グラフに使用するデータは分かりやすくするためにコード内で配列として記述しました。月別の気温グラフのようなイメージのデータ群です。実際の利用場面ではCSVからデータを読み取って配列に格納することが多くなると思います。
続いてFigureクラスでインスタンスを生成し、描画するグラフのパラメータを設定しています。本当は色々と設定できる項目がありますが、今回はシンプルにサイズのみです。
Bokehのグラフ描画はまずFigureクラスから生成したインスタンスでグラフのサイズや範囲を指定し、続いてクラス内の各種メソッドでグラフの種類やどの値をグラフのどの系列で使うかなどを設定する、というのが基本になります。
いよいよグラフのデータ系列設定を行います。今回は棒グラフなので使用するメソッドはvbarというものです。最低限X軸に何を使うか、Y軸に何を使うかという情報だけあれば良いので、例のようにX軸のx=とY軸のtop=を設定すればOKです。
最後に、show関数でグラフのインスタンスを描画するよう指示すればグラフが描画されます。
仕組みを理解するのは結構大変ですが、コードとしては非常に簡単にグラフが描画できるのがお分かりいただけるかと思います。