Bokehを使ってPythonでローソク足チャートを作成する方法を徹底解説
Bokehは、Pythonでデータ可視化を行うためのオープンソースのパッケージです。BokehはHTMLとJavaScriptを使ってグラフを描画するため、Webベースのダッシュボードとの相性が非常に良いのが特徴です。
また、BokehはNumPyやPandasなど、他のPythonパッケージと簡単に連携できるため、インタラクティブなプロットやダッシュボードの作成に幅広く活用されています。
Bokehの依存ライブラリ
Bokehを利用するには、以下の依存ライブラリが必要です。
Numpy Pillow Jinja2 Packaging Pyyaml Six Tornado Python-dateutil
Bokehのインストール方法
Windowsのコマンドプロンプトからインストールする場合は、次のコマンドを実行します。
pip3 install bokeh
Anaconda環境でインストールする場合は、Anacondaプロンプトで以下を実行します。
conda install bokeh
ローソク足チャートの作成例
それでは、実際にBokehを使ってローソク足(キャンドルスティック)チャートを作成してみましょう。
from math import pi
import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.sampledata.stocks import MSFT
my_df = pd.DataFrame(MSFT)[:35]
my_df["date"] = pd.to_datetime(my_df["date"])
inc = my_df.close > my_df.open
dec = my_df.open > my_df.close
w = 12*60*60*1000
TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000, title = "Candlestick using MSFT data")
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha=0.3
p.segment(my_df.date, my_df.high, my_df.date, my_df.low, color="black")
p.vbar(my_df.date[inc], w, my_df.open[inc], my_df.close[inc], fill_color="#D5E1DD", line_color="black")
p.vbar(my_df.date[dec], w, my_df.open[dec], my_df.close[dec], fill_color="#F2583E", line_color="black")
output_file("candlestick.html", title="candlestick plot")
show(p)注意:このコードを実行するには、事前にBokehがインストールされている必要があります。さらに、サンプルデータセットをダウンロードするために、以下のコマンドを実行しておいてください。
bokeh.sampledata.download()
実行結果

コードの解説
必要なパッケージをインポートし、エイリアスを設定しています。
MSFT(マイクロソフト)の株価データは、Bokehライブラリに組み込まれているサンプルデータセットです。
取得したデータはPandasのデータフレームとして格納されます。
figure関数を呼び出し、プロットの幅やタイトルなどを指定して図を作成します。
output_file関数を使って、生成されるHTMLファイルの名前を指定しています。
TOOLS属性では、パン操作やズームなどのインタラクティブなツールを定義しています。
segment関数で高値・安値のヒゲを描画し、vbar関数にデータを渡して陽線・陰線のローソク足本体を描画しています。
最後にshow関数を呼び出すことで、作成したチャートがブラウザ上に表示されます。
このように、Bokehを使えば数行のコードで美しくインタラクティブなローソク足チャートを簡単に作成できます。株価分析や金融データの可視化において、ぜひ活用してみてください。
-
Pythonのmatplotlibで1つのグラフに3つの異なるデータセットをプロットする方法
Matplotlibは、Pythonで最も広く利用されているデータ可視化ライブラリのひとつです。データを可視化することは、数値を一つひとつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようにする重要なステップです。また、定量的な洞察を読者や聴衆に効果的に伝えるための手段としても非常に有効です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに簡単に組み込むことができます。IPythonシェル、Jupyter Notebook、Sp
-
PythonのSeabornライブラリで棒グラフ(barplot)を使う方法をわかりやすく解説
Seabornは、データの可視化を支援するPythonライブラリです。洗練されたカスタムテーマと高水準インターフェースを備えており、少ないコード量で美しい統計グラフを作成できるのが大きな特徴です。 棒グラフ(barplot)とは これまでの散布図などのプロットでは、データセット全体をグラフ上に描画していました。一方、棒グラフ(bar plot)を利用すると、データ分布の中心的な傾向(中央傾向)を直感的に把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するために使用します。データは長方形のバーとして描画され、バーの高さ(長さ)がそのカテゴリにおける値の大きさや割