Python
 Computer >> コンピューター >  >> プログラミング >> Python

Bokehライブラリを使ってPythonで双軸グラフを可視化する方法

Bokehは、データの可視化を支援するPythonのパッケージです。オープンソースプロジェクトとして公開されており、HTMLとJavaScriptを使ってプロットを描画します。そのため、Webベースのダッシュボードを構築する際に特に有用です。

MatplotlibやSeabornが静的なグラフを生成するのに対し、Bokehはインタラクティブなグラフを生成できる点が大きな特徴です。ユーザーがズームやパンなどの操作を行うと、それに応じてグラフの表示が動的に変化します。

また、作成したプロットはFlaskやDjangoで構築したWebアプリケーションに埋め込むこともでき、Jupyter Notebook上でのレンダリングにも対応しています。

Bokehのインストール方法

Windowsのコマンドプロンプトの場合

pip3 install bokeh

Anacondaプロンプトの場合

conda install bokeh

それでは、実際の例を見てみましょう。

サンプルコード:双軸(ツイン軸)プロット

from numpy import pi, arange, sin, linspace

x = arange(-2.5*pi, 2.5*pi, 0.15)
y = sin(x)
y2 = linspace(0, 176, len(y))

from bokeh.plotting import output_file, figure, show
from bokeh.models import LinearAxis, Range1d

my_fig = figure(title='Twin Axis plot', plot_width=300, plot_height=300, y_range=(-0.7, 0.7))
my_fig.line(x, y, color="blue")
my_fig.extra_y_ranges = {"y2": Range1d(start=0, end=100)}
my_fig.add_layout(LinearAxis(y_range_name="y2"), 'right')
my_fig.line(x, y2, color="cyan", y_range_name="y2")

show(my_fig)

出力結果

Bokehライブラリを使ってPythonで双軸グラフを可視化する方法

コードの解説

  • まず、NumPyからpi、arange、sin、linspaceをインポートし、sin波のデータx・yと、0〜176までの線形データy2を生成します。

  • bokeh.plottingからoutput_file、figure、showを、bokeh.modelsからLinearAxisとRange1dをインポートします。

  • figure関数を呼び出し、タイトル、プロットの幅・高さ、主y軸の範囲(-0.7〜0.7)を指定して図を作成します。

  • line関数で最初のデータ系列(青色)を主y軸に対してプロットします。

  • extra_y_ranges属性にRange1dオブジェクトを設定することで、第2のy軸「y2」の範囲(0〜100)を定義します。

  • add_layoutメソッドでLinearAxisを追加し、第2のy軸をグラフの右側に配置します。

  • 2つ目のline関数では、y_range_name引数に「y2」を指定することで、シアン色の系列を第2のy軸に紐づけて描画します。

  • show関数を実行すると、グラフがHTMLファイルとして出力され、ブラウザ上にインタラクティブなプロットが表示されます。なお、output_file関数を使えば、生成されるHTMLファイル名を明示的に指定することも可能です。

このように、extra_y_rangesとLinearAxisを組み合わせることで、Bokehではスケールの異なる2つのデータ系列を1つのグラフ上で簡単に比較・可視化できます。

  1. PythonのSeabornライブラリでcountplotを使ってデータを可視化する方法

    Seabornは、データの可視化を支援するPythonライブラリです。カスタマイズされたテーマと高水準のインターフェースを備えており、美しいグラフを簡単に作成できます。 これまでのプロットでは、データセット全体をグラフ上に描画してきました。一方、棒グラフ(bar plot)を活用すると、データ分布の中心的な傾向(中央傾向)を把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するのに役立ちます。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの割合を示します。 barplotの特殊なケースがcountplotです。countplotは、第

  2. PythonのSeabornライブラリで棒グラフ(barplot)を使う方法をわかりやすく解説

    Seabornは、データの可視化を支援するPythonライブラリです。洗練されたカスタムテーマと高水準インターフェースを備えており、少ないコード量で美しい統計グラフを作成できるのが大きな特徴です。 棒グラフ(barplot)とは これまでの散布図などのプロットでは、データセット全体をグラフ上に描画していました。一方、棒グラフ(bar plot)を利用すると、データ分布の中心的な傾向(中央傾向)を直感的に把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するために使用します。データは長方形のバーとして描画され、バーの高さ(長さ)がそのカテゴリにおける値の大きさや割