PythonのBokehを使って棒グラフを可視化する方法をわかりやすく解説
Bokehとは?
Bokehは、Pythonでデータ可視化を行うためのオープンソースライブラリです。最大の特徴は、グラフをHTMLとJavaScriptで描画する点にあります。そのため、Webベースのダッシュボードを作成する際に特に威力を発揮します。
また、NumPyやPandasなど他のPythonパッケージとの連携も容易で、インタラクティブなグラフやダッシュボードを手軽に作成できます。
Matplotlib・Seabornとの違い
MatplotlibやSeabornが静的な(静止画の)グラフを出力するのに対し、Bokehはインタラクティブなグラフを生成します。ユーザーがマウスで操作すると、グラフがそれに応じて動的に変化するのです。
さらに、Bokehで作成したグラフはFlaskやDjangoで構築したWebアプリケーションに埋め込むことができ、Jupyter Notebook上でも表示できます。
依存パッケージとインストール方法
Bokehを利用するには、以下のパッケージが必要です。
numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
python-dateutil
Windowsのコマンドプロンプトからインストールする場合は、次のコマンドを実行します。
pip3 install bokeh
Anaconda環境の場合は、以下のコマンドを使用します。
conda install bokeh
棒グラフを作成するサンプルコード
それでは、実際にBokehで棒グラフを描画してみましょう。
from bokeh.plotting import figure, output_file, show
xvals = ['label_1', 'label_2', 'label_3']
yvals = [56, 78, 99]
fig = figure(x_range=xvals, plot_width=400, plot_height=300)
fig.vbar(x=xvals, top=yvals, width=0.5)
show(fig)
出力結果

このコードを実行すると、HTMLファイルが生成され、ブラウザ上にインタラクティブな棒グラフが表示されます。各ラベル(label_1〜label_3)に対応した高さのバーが描画され、ホバー操作などで値を確認することも可能です。
コードの解説
必要なモジュール(figure、output_file、show)をbokeh.plottingからインポートします。
X軸のラベルとY軸の値を、それぞれリストとして定義します。
figure関数を呼び出し、X軸の範囲(x_range)とプロットの幅・高さを指定して図を作成します。
vbar関数にデータを渡すことで、縦棒グラフ(垂直バー)を描画します。width引数はバーの幅を制御します。
show関数を実行すると、グラフがHTMLファイルとして出力され、ブラウザで表示されます。
なお、output_file関数を使うと、生成されるHTMLファイルのファイル名を明示的に指定できます。用途に応じて活用すると便利です。
-
【Python】Seabornのfactorplot関数でバイオリン図を可視化する方法
データ分析において、カテゴリ変数と連続変数の関係を視覚的に把握することは非常に重要です。Pythonの可視化ライブラリ「Seaborn」には、カテゴリカルデータを見やすく可視化するための機能が多数用意されています。本記事では、factorplot関数を使ってバイオリン図(バイオリンプロット)を描く方法を解説します。 barplot(棒グラフ)とpointplot(点グラフ)との違い barplot関数は、カテゴリ変数と連続変数の関係を表現するための関数です。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの推定値(割合)を示します。 一方、pointplotも棒グラフ
-
PythonのSeabornでpairplotを使って多変量データを視覚化する方法
Seabornは、データの視覚化を支援するPythonのライブラリです。カスタマイズされたテーマと高水準なインターフェースが備わっており、美しいグラフを少ないコード量で作成できるのが特徴です。実際のデータ分析では、データセットに多数の変数(特徴量)が含まれていることが一般的です。そのような場合、すべての変数同士の関係を1つずつ分析しようとすると、二変量分布のプロットを繰り返すことになり、時間がかかるうえにコードも複雑になってしまいます。pairplot関数とはそこで役立つのが「複数のペアごとの二変量分布」を一度に可視化する手法です。Seabornのpairplot関数を使えば、データフレーム内