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

Matplotlibのplt.colorbarでカラーバーの目盛り(ティック)数を設定する方法

Matplotlibでカラーバーの目盛り(ティック)の数や位置を設定するには、set_ticks()メソッドとset_ticklabels()メソッドを使用します。以下の手順で簡単に実装できます。

手順

  • NumPyを使ってランダムなデータを作成する
  • imshow()メソッドでデータを画像として表示する(2次元の正規ラスタ上に描画)
  • スカラーマッピング可能なオブジェクト(ScalarMappable)を引数に指定して、colorbar()メソッドでカラーバーを作成する
  • set_ticks()set_ticklabels()メソッドで、カラーバーの目盛りの位置とラベルを設定する
  • show()メソッドで図を表示する

コード例

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

data = np.random.rand(4, 4)
im = plt.imshow(data, cmap="copper")
cbar = plt.colorbar(im)
cbar.set_ticks([0.2, 0.4, 0.6, 0.8])
cbar.set_ticklabels(["A", "B", "C", "D"])
plt.show()

出力結果

Matplotlibのplt.colorbarでカラーバーの目盛り(ティック)数を設定する方法

コードの解説

この例では、まず4×4のランダムなデータを生成し、"copper"カラーマップを使って画像として表示しています。次にcolorbar()でカラーバーを作成した後、set_ticks()によって目盛りを0.2・0.4・0.6・0.8の4箇所に配置しています。さらにset_ticklabels()を使うことで、各目盛りに「A」「B」「C」「D」という任意の文字列ラベルを割り当てています。このように、目盛りの位置とラベルは自由にカスタマイズできます。

補足:目盛りの「数」だけを指定したい場合

具体的な値ではなく、目盛りの個数だけを指定したい場合は、ticker.MaxNLocatorを利用すると便利です。

from matplotlib import ticker

cbar.locator = ticker.MaxNLocator(nbins=5)
cbar.update_ticks()

このように設定すると、カラーバーにおよそ5個の目盛りが自動的に均等配置されます。値を手動で指定するset_ticks()と使い分けることで、柔軟にカラーバーを調整できます。

  1. 【Python】MatplotlibでX軸の値(目盛りラベル)を設定する方法

    Python の Matplotlib でグラフの X 軸の値(目盛りラベル)を自由に設定したい場合は、plt.xticks() メソッドを使うのが最も簡単です。以下の手順で実装できます。 X軸の値を設定する手順 x と y のデータポイントを格納する2つのリストを作成します。 range(len(x)) を使って、目盛りの基準となるインデックス(xticks の範囲)を取得します。 plot() メソッドで、インデックスのリストと y データを使って折れ線グラフを描画します。 xticks() メソッドを使い、デフォルトの目盛りを実際の X 軸の値に置き換えます。 show() メソッドで

  2. 【Python】Matplotlibで軸の目盛りを円周率(π)の倍数で表示する方法

    PythonのMatplotlibでグラフを描く際、軸の目盛りをπ(円周率)の倍数で表示したいケースはよくあります。特に三角関数のグラフでは、「−π/2」「π」「3π/2」のような目盛りラベルにすることで、グラフが格段に読みやすくなります。 ここでは、numpyとMatplotlibを使って、X軸の目盛りをπの倍数として設定する手順を解説します。 設定手順 pi変数を初期化し、numpyを使ってthetaおよびyのデータ点を作成します。 plot()メソッドでthetaとyをプロットします。 xticks()メソッドで、X軸の目盛りの位置とラベルを取得・設定します。 margins()メソッ