[matplotlib] 9. カラーマップ

matplotlib

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

コメント