matplotlibにおけるカラーマップの設定
matplotlibでは、カラーマップによりデータを視覚的にわかりやすく表示できる。ここでは、その例について説明する。
モジュールのインポート
データの生成
xとyをnp.meshgridすることで2次元データ(X,Y)にして、X,Yを使ってZデータを生成することで3次元データを生成する。
cmapを設定しない場合のcmap
imshowで画像を表示する。interpolationは補間の方法でgaussianとすることでgaussianでデータ間が補間されてなめらかにつながる。
extent=[-4, 4, -4, 4]でx,y軸の表示する範囲を設定し、vmax, vminでZ軸の範囲を設定する。plt.colorbar()でカラーバーが表示される。
cmapを設定しない場合、defaultのviridisが表示される。
連続的に変化するcmap
上のviridis同様に、連続的に変化するcmapは複数ある。cividisは以下のようになる。
シンプルに段階的に変化するcmapとして、Greysなどがあり、以下のようになる。
発散するcmap
中央から発散していくcmapとして、PuOrなどがある。これは地形などの中間値をもつ場合に効果的に利用できる。
周期性をもつcmap
hsvなどは周期的なcmapであるため、Zの最大値と最小値が同じ色となる。
定性的なcmap
定性的なcmapとしたい場合は、tab10などがある。
viridisなどで定性的cmapを作成したい場合は以下のようにする。
plt.colorbar(im,ticks=np.linspace(-abs(Z).max(), abs(Z).max(),11))とすることで、カラーバーの色の境目に目盛りを設定している。
その他のcmap
gist_earth、terrainは地形データと水深データを同時に表示するのに適しているcmapとなっている。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Colormap reference — Matplotlib 3.9.3 documentation
Many ways to plot images — Matplotlib 3.9.2 documentation
コメント