ホームページ  >  記事  >  バックエンド開発  >  matplotlib でカスタム カラーマップのカラーバー範囲を設定するにはどうすればよいですか?

matplotlib でカスタム カラーマップのカラーバー範囲を設定するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 11:40:03355ブラウズ

How do I set the colorbar range for custom colormaps in matplotlib?

カスタム カラーマップのカラーバー範囲を設定する

カスタム カラーマップを使用してプロットを作成する場合、カラーバーの範囲をカラーマップから独立して設定することが望ましいことがよくあります。データ値。これにより、データ範囲が異なる複数のプロット間で一貫した色の解釈が可能になります。

提供されたコード スニペットでは、関数 pcolor は cdict 辞書で定義されたカスタム カラーマップを使用します。カラーバーの範囲は、デフォルトではデータ配列 (v) の最大値と最小値によって決まります。ただし、場合によっては、カラーバーの範囲を 0 ~ 1 などの特定の間隔に強制する必要があります。

pcolor 関数の vmin パラメーターと vmax パラメーターを使用して、最小値と最大値を設定できます。それぞれカラーバーの場合。これらの値を指定すると、指定した範囲に合わせてカラーマップが伸縮されます。

更新された例は次のとおりです:

<code class="python">import matplotlib as m
import matplotlib.pyplot as plt
import numpy as np

cdict = {
  'red'  :  ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
  'green':  ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
  'blue' :  ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}

cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)

x = np.arange(0, 10, .1)
y = np.arange(0, 10, .1)
X, Y = np.meshgrid(x,y)

data = 2*( np.sin(X) + np.sin(3*Y) )

plt.pcolor(X, Y, data, cmap=cm, vmin=0, vmax=1)
plt.colorbar()
plt.show()</code>

この例では、vmin パラメーターと vmax パラメーターは次のように設定されています。それぞれ 0 と 1。これにより、データ値に関係なく、カラーバーの範囲が 0 から 1 になります。

vmin と vmax を指定すると、データ範囲が異なる場合でも、異なるプロット間で一貫した色の解釈を保証できます。これは、複数のデータセットを比較する場合、またはデータ範囲が動的に変化する可能性があるインタラクティブなビジュアライゼーションを作成する場合に特に役立ちます。

以上がmatplotlib でカスタム カラーマップのカラーバー範囲を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。