ノート
完全なサンプルコードをダウンロードするには、ここをクリックしてください
カスタマイズされたカラーバーのチュートリアル#
このチュートリアルでは、プロットを添付せずにスタンドアロン カラーバーを作成およびカスタマイズする方法を示します。
カスタマイズされたカラーバー#
には、使用するカラーマップとノルムを示す「マッピング可能なcolorbar
」( matplotlib.cm.ScalarMappable
) オブジェクト (通常はイメージ) が必要です。画像を添付せずにカラーバーを作成するには、代わりにScalarMappable
データを関連付けずに を使用できます。
基本連続カラーバー#
ここでは、目盛りとラベルを使用して基本的な連続カラー バーを作成します。
colorbar
呼び出しの引数は、( normおよびcmapScalarMappable
引数
を使用して構築された)、カラーバーが描画される軸、およびカラーバーの向きです。
詳細については、colorbar
API を参照してください。
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()