範囲外の色は、カラーマップのset_over
およびset_under
メソッドを使用して設定できます。ドキュメントを参照してください。カラーマップを作成するときに、これらの値を指定する必要があります。ただし、これのデフォルトを設定するmatplotlibrc設定は表示されません。matplotlibメーリングリストで質問することもできます。
編集:何が起こっているのかわかります。あなたが説明する白い領域は、色の範囲の限界を超えていません。これは、単に軸の空白の背景です。特定のレベルのみをプロットしているため、その範囲外のレベルはまったくプロットされず、それらの領域は空白のままになります。必要なものを取得するには、次のようにします。
cs = pyplot.contourf(x,y,z,levels=np.arange(50, 220, 20), cmap=pyplot.cm.jet, extend="both")
cs.cmap.set_under('k')
cs.set_clim(50, 210)
cb = pyplot.colorbar(cs)
「extend」引数が重要です。これは、contourfに先に進んですべての等高線をプロットするように指示しますが、指定された範囲外のすべてを「大きすぎる」と「小さすぎる」のカテゴリに分類します。cs.set_clim
これをデバッグしているときにcontourfで発見した奇妙な問題を回避するには、この呼び出しが必要です。何らかの理由でを使用するextend
と、データ制限が操作されるため、データ制限を希望どおりにリセットする必要があります。
また、スタイルの問題として、のようなことをするべきではありませんColormap.set_under(cmap,color='k')
。これは、クラスメソッドを呼び出し、インスタンスを明示的に渡すことです。これは、奇妙な方法です。ただやってくださいcmap.set_under(color="k")
。