ウェブサイト検索

Python の Bokeh を使用して目盛りラベルのサイズを変更する方法


Bokeh は、Python で利用可能なデータ視覚化ライブラリの 1 つであり、ユーザーが Web ブラウザーでインタラクティブなプロット、データ アプリケーション、ダッシュボードを作成できるようにします。 Bokeh は、散布図、折れ線グラフ、棒グラフ、面グラフなどのさまざまなプロットやチャートに加え、より特殊なヒート マップや地理マップも提供します。これは、活発な開発者コミュニティが存在するオープン ソース ライブラリです。

Python で Bokeh を使用してプロットを作成する

Bokeh ライブラリは、プロットを作成するための 2 つの主要なインターフェイスを提供します。1 つは、個々のコンポーネントからプロットを作成するために使用される低レベル インターフェイスであり、もう 1 つは、単純な Python コードからプロットを作成するために使用される高レベル インターフェイスです。高レベル インターフェイスは低レベル インターフェイスよりも高度で、さまざまなタイプのプロットを作成するためのより直観的かつ簡単な方法を提供します。

Bokeh ライブラリは幅広いオプションをサポートしているため、ユーザーは注釈やインタラクションを追加してプロットを制御でき、さまざまなソースからのデータを含めることもできます。

Bokeh ライブラリの特徴

Bokeh ライブラリの主な機能は次のとおりです。

  • Web ブラウザーで対話型のデータ視覚化を提供します。

  • このライブラリの出力は、HTML、PNG、SVG です。

  • リアルタイムおよびストリーミングのデータをサポートします。

  • これは、地理的マッピングとデータ探索もサポートします。

  • これは、Numpy や Pandas などのライブラリと統合できます。

データの視覚化とプロットにおいて、目盛りは、表示されているデータを識別するためにプロット内で使用される小さなマークまたはインジケーターです。プロットで使用できる目盛りは 2 種類あります。 1 つは xticks で、もう 1 つは yticks です。

Bokeh ライブラリのインストール

Python で Bokeh ライブラリを使用するには、まず以下のコードを使用してライブラリをインストールする必要があります。

pip install bokeh

Python で bokeh ライブラリが正常にインストールされると、次の出力が生成されます。

pip install bokeh
Collecting bokeh
  Downloading bokeh-3.1.1-py3-none-any.whl (8.3 MB)
     ---------------------------------------- 8.3/8.3 MB 44.2 MB/s eta 0:00:00
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: pytz, xyzservices, tzdata, tornado, six, PyYAML, pillow, packaging, numpy, MarkupSafe, python-dateutil, Jinja2, contourpy, pandas, bokeh
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.2 PyYAML-6.0 bokeh-3.1.1 contourpy-1.0.7 numpy-1.24.3 packaging-23.1 pandas-2.0.1 pillow-9.5.0 python-dateutil-2.8.2 pytz-2023.3 six-1.16.0 tornado-6.3.2 tzdata-2023.3 xyzservices-2023.2.0

この例では、プロット内の目盛りを指定せずに、bokeh ライブラリを使用してプロットを作成します。以下は参考になるコードです。

以下のコードでは、bokeh ライブラリから Figure と show 関数をインポートし、プロットのサイズを指定して、x 変数と y 変数のデータの散布図をプロットし、最後に作成されたプロットを表示します。

from bokeh.plotting import figure, show
p = figure(width=600, height=400)
x = [1, 2, 3, 4, 5]
y = [2, 5, 3, 6, 1]
p.scatter(x, y)
show(p)

出力

以下は、bokeh ライブラリを使用して作成された散布図の出力です。

次の例では、bokeh ライブラリの NumeralTickFormatter() 関数を使用して目盛りを指定します。

from bokeh.plotting import figure, show
from bokeh.models import NumeralTickFormatter
p = figure(width=600, height=400)
x = [1, 2, 3, 4, 5]
y = [2, 5, 3, 6, 1]
p.scatter(x, y)
p.yaxis.formatter = NumeralTickFormatter(format="$0,0")
p.xaxis.formatter = NumeralTickFormatter(format = "%0,0")
show(p)

出力

以下は、x 軸と y 軸に目盛りを付けた bokeh 関数を使用して作成された散布図の出力です。

NumeralTickFormatter() 関数を使用して x 軸と y 軸に目盛りを適用するもう 1 つの例を見てみましょう。

from bokeh.plotting import figure, show
from bokeh.models import NumeralTickFormatter
import numpy as np
p = figure(width=600, height=400)
x = np.arange(10,40,2)
y = np.random.randn(20)
p.line(x, y)
p.yaxis.formatter = NumeralTickFormatter(format="%0,0")
p.xaxis.formatter = NumeralTickFormatter(format = "$0,0")
show(p)

出力

以下は、scatter() 関数と NumeralTickFormatter() 関数を使用してプロットしたプロットで使用するティックの出力です。

関連記事: