以下では次のようにモジュールを
importしているものとする.
描画用のデータを作る.
配色を制御する
カラーマップを指定する
色を指定する
境界が
11個なら必要な色は
10個.
値の範囲と範囲外の色を指定する
値の範囲は基本的に
levelsで制御すればよい.
カラーマップに対して
set_under(), set_over()を呼び出しそれぞれ下側,上側の色を指定する.
np.linspace(1,3,11)の端の部分を範囲外にしてみる.
ついでにカラーバーのレイアウトや形状を調整している.
◇注意!
plt.cm.Spectralをコピーしているのは,これ自体に変更が加えられるのを避けるためである.
cmap = plt.cm.Spectralとすると
cmapは
plt.cm.Spectralを指示するポインターのような役割を持ち,
cmapに加えられた変更が
plt.cm.Spectralにも反映される.なのでこのカラーマップを使って別の図を描こうとすると,範囲外の色が変更された状態のものを呼び出してしまうことになる.
もちろんそれでも別に不都合が無いという場合は(というか不都合が生じることの方が少ないだろうが)わざわざコピーしなくとも良い.
方法
2を取る場合は
cs.changed()が必要.これでコンターに変更が反映される.
vmin, vmaxを指定すると以下のようになる.
カラーマップの目盛は
levelsで指定されたもので,範囲内の部分がカラーマップで色分けされる.
colorsを与えた場合は
vmin, vmaxの入力は無視される.