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)
出力結果

コードの解説
まず、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つのグラフ上で簡単に比較・可視化できます。
-
PythonのSeabornライブラリでcountplotを使ってデータを可視化する方法
Seabornは、データの可視化を支援するPythonライブラリです。カスタマイズされたテーマと高水準のインターフェースを備えており、美しいグラフを簡単に作成できます。 これまでのプロットでは、データセット全体をグラフ上に描画してきました。一方、棒グラフ(bar plot)を活用すると、データ分布の中心的な傾向(中央傾向)を把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するのに役立ちます。データは長方形のバーとして描画され、バーの長さがそのカテゴリにおけるデータの割合を示します。 barplotの特殊なケースがcountplotです。countplotは、第
-
PythonのSeabornライブラリで棒グラフ(barplot)を使う方法をわかりやすく解説
Seabornは、データの可視化を支援するPythonライブラリです。洗練されたカスタムテーマと高水準インターフェースを備えており、少ないコード量で美しい統計グラフを作成できるのが大きな特徴です。 棒グラフ(barplot)とは これまでの散布図などのプロットでは、データセット全体をグラフ上に描画していました。一方、棒グラフ(bar plot)を利用すると、データ分布の中心的な傾向(中央傾向)を直感的に把握することができます。 barplot関数は、カテゴリ変数と連続変数の関係を表現するために使用します。データは長方形のバーとして描画され、バーの高さ(長さ)がそのカテゴリにおける値の大きさや割