PythonのBokehライブラリで複数の棒グラフを可視化する方法【実例付き】
Bokehとは?
Bokehは、Pythonでデータ可視化を行うためのオープンソースパッケージです。最大の特徴は、HTMLとJavaScriptを使ってプロットを描画する点にあります。そのため、Webブラウザ上でのインタラクティブな可視化に非常に適しています。
BokehはデータソースをJSONファイルに変換します。このJSONファイルは、JavaScriptライブラリであるBokehJSへの入力として使用されます。BokehJSはTypeScriptで書かれており、モダンブラウザ上で可視化をレンダリングする役割を担っています。
Bokehの依存関係
Bokehを利用するには、以下のライブラリが必要です。
Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil
Bokehのインストール方法
Windowsのコマンドプロンプトの場合
pip3 install bokeh
Anacondaプロンプトの場合
conda install bokeh
複数の棒グラフを描画するサンプルコード
それでは、Bokehを使って複数の棒グラフ(グループ化された棒グラフ)を描画する具体例を見てみましょう。
from bokeh.plotting import figure, output_file, show
from bokeh.transform import dodge
labs = ['label_1', 'label_2', 'label_3']
vals = ['val_1', 'val_2', 'val_3']
my_data = {'labs': labs,
'val_1': [2, 5, 11],
'val_2': [34, 23, 1],
'val_3': [25, 34, 23]
}
fig = figure(x_range=labs, plot_width=300, plot_height=300)
fig.vbar(x=dodge('labs', -0.25, range=fig.x_range), top='val_1',
width=0.2, source=my_data, color="green")
fig.vbar(x=dodge('labs', 0.0, range=fig.x_range), top='val_2',
width=0.2, source=my_data, color="cyan")
fig.vbar(x=dodge('labs', 0.25, range=fig.x_range), top='val_3',
width=0.2, source=my_data, color="blue")
show(fig)出力結果
上記のコードを実行すると、3種類のデータ系列が横並びに配置されたグループ化棒グラフがブラウザ上に表示されます。各ラベルに対して、緑・シアン・青の3本のバーが並んでいることが確認できます。
コードの解説
- 必要なパッケージをインポートし、エイリアスを設定します。
- 「figure」関数を呼び出し、プロットの幅と高さを指定して図を作成します。
- データはリストとして定義され、辞書形式でまとめられます。
- 「output_file」関数を呼び出すことで、生成されるHTMLファイルの名前を指定できます。
- Bokehの「vbar」関数を呼び出し、データソースとともに垂直方向の棒グラフを描画します。
- ここで重要なのが「dodge」関数です。各データ系列のバーが重ならないよう、X軸上の位置をずらしています。-0.25、0.0、+0.25というオフセット値により、3つのバーがきれいに並びます。
- 最後に「show」関数を使って、プロットを表示します。
まとめ
Bokehの「dodge」変換を活用することで、複数のデータ系列を持つグループ化された棒グラフを簡単に作成できます。HTMLとJavaScriptベースの出力により、Webページへの埋め込みやインタラクティブな操作にも対応しており、ダッシュボード開発などにも幅広く活用できる強力な可視化ツールです。
-
Seabornライブラリを使ってPythonでポイントプロットを可視化する方法
Seabornは、データの可視化を支援するPythonライブラリです。このインターフェースを利用することで、データの種類やフィルタ適用時の挙動を柔軟にカスタマイズ・制御できます。棒グラフ(バープロット)を活用すると、データ分布の中心的な傾向(中央傾向)を把握できます。barplot関数は、カテゴリ変数と連続変数の間の関係を表現するために使われます。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの割合を示します。ポイントプロットとはポイントプロットは棒グラフとよく似ていますが、塗りつぶされたバーの代わりに、データ点の推定値をもう一方の軸上の特定の高さにある「点」で表現
-
PythonのSeabornライブラリで棒グラフ(barplot)を使う方法をわかりやすく解説
Seabornは、データの可視化を支援するPythonライブラリです。洗練されたカスタムテーマと高水準インターフェースを備えており、少ないコード量で美しい統計グラフを作成できるのが大きな特徴です。 棒グラフ(barplot)とは これまでの散布図などのプロットでは、データセット全体をグラフ上に描画していました。一方、棒グラフ(bar plot)を利用すると、データ分布の中心的な傾向(中央傾向)を直感的に把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するために使用します。データは長方形のバーとして描画され、バーの高さ(長さ)がそのカテゴリにおける値の大きさや割