カスタマイズされたカラーバーのチュートリアル#

このチュートリアルでは、プロットを添付せずにスタンドアロン カラーバーを作成およびカスタマイズする方法を示します。

カスタマイズされたカラーバー#

には、使用するカラーマップとノルムを示す「マッピング可能なcolorbar」( matplotlib.cm.ScalarMappable) オブジェクト (通常はイメージ) が必要です。画像を添付せずにカラーバーを作成するには、代わりにScalarMappableデータを関連付けずに を使用できます。

基本連続カラーバー#

ここでは、目盛りとラベルを使用して基本的な連続カラー バーを作成します。

colorbar呼び出しの引数は、( normおよびcmapScalarMappable引数 を使用して構築された)、カラーバーが描画される軸、およびカラーバーの向きです。

詳細については、colorbarAPI を参照してください。

import matplotlib.pyplot as plt
import matplotlib as mpl

fig, ax = plt.subplots(figsize=(6, 1))
fig.subplots_adjust(bottom=0.5)

cmap = mpl.cm.cool
norm = mpl.colors.Normalize(vmin=5, vmax=10)

fig.colorbar(mpl.cm.ScalarMappable(norm=norm, cmap=cmap),
             cax=ax, orientation='horizontal', label='Some Units')
カラーバーのみ
<matplotlib.colorbar.Colorbar object at 0x7f2cdf4e94e0>

連続カラースケールを持つ拡張カラーバー#

2 番目の例は、連続した cmap に基づいて個別のカラーバーを作成する方法を示しています。「extend」キーワード引数を使用すると、拡張子を含む適切な色が色空間を満たすために選択されます。

fig, ax = plt.subplots(figsize=(6, 1))
fig.subplots_adjust(bottom=0.5)

cmap = mpl.cm.viridis
bounds = [-1, 2, 5, 7, 12, 15]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N, extend='both')

fig.colorbar(mpl.cm.ScalarMappable(norm=norm, cmap=cmap),
             cax=ax, orientation='horizontal',
             label="Discrete intervals with extend='both' keyword")
カラーバーのみ
<matplotlib.colorbar.Colorbar object at 0x7f2cfb5e67a0>

離散間隔カラーバー#

3 番目の例は、 ListedColormapリストされた色のセットからカラーマップを生成するの使用を示しています。colors.BoundaryNormこれは、離散間隔と拡張端に基づいてカラーマップ インデックスを生成し、「上」および「下」の値の色を示します。オーバーとアンダーは、正規化された [0, 1] 範囲外のデータを表示するために使用されます。ここでは、0 ~ 1 の範囲の float をエンコードする文字列として、色を灰色の色合いとして渡します。

aListedColormapを使用する場合、境界配列の長さはカラー リストの長さよりも 1 大きくする必要があります。範囲は単調増加でなければなりません。

今回は、追加の引数を に渡します colorbar。範囲外の値を、extendキーワードを 使用せずにカラーバーに表示するには、カラーバーの呼び出しでextendキーワード引数を直接colors.BoundaryNorm使用する必要があります。ここでも、間隔引数を使用して、各カラーバー セグメントの長さを対応する間隔に比例させます。

fig, ax = plt.subplots(figsize=(6, 1))
fig.subplots_adjust(bottom=0.5)

cmap = (mpl.colors.ListedColormap(['red', 'green', 'blue', 'cyan'])
        .with_extremes(over='0.25', under='0.75'))

bounds = [1, 2, 4, 7, 8]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
fig.colorbar(
    mpl.cm.ScalarMappable(cmap=cmap, norm=norm),
    cax=ax,
    extend='both',
    ticks=bounds,
    spacing='proportional',
    orientation='horizontal',
    label='Discrete intervals, some other units',
)
カラーバーのみ
<matplotlib.colorbar.Colorbar object at 0x7f2cdf4e8430>

カスタム延長長さのカラーバー#

ここでは、個別の間隔を持つカラーバーで、カスタムの長さのカラーバー エクステンションを使用する方法を示します。各エクステンションの長さを内部カラーの長さと同じにするには、 を使用しますextendfrac='auto'

fig, ax = plt.subplots(figsize=(6, 1))
fig.subplots_adjust(bottom=0.5)

cmap = (mpl.colors.ListedColormap(['royalblue', 'cyan', 'yellow', 'orange'])
        .with_extremes(over='red', under='blue'))

bounds = [-1.0, -0.5, 0.0, 0.5, 1.0]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
fig.colorbar(
    mpl.cm.ScalarMappable(cmap=cmap, norm=norm),
    cax=ax,
    extend='both',
    extendfrac='auto',
    ticks=bounds,
    spacing='uniform',
    orientation='horizontal',
    label='Custom extension lengths, some other units',
)

plt.show()
カラーバーのみ

Sphinx-Gallery によって生成されたギャラリー