matplotlibにおけるカラーマップの設定
このページでは、Matplotlibライブラリを使用したカラーマップの設定方法について解説します。データの視覚化において色の選択は非常に重要で、適切なカラーマップを使うことでデータの傾向や特徴を効果的に表現できます。
Matplotlibの標準カラーマップ
Matplotlibには多数の標準カラーマップが用意されています。代表的なものには以下があります:
連続的なカラーマップ
- viridis:最新のデフォルトカラーマップ。色覚異常の方にも識別しやすい
- plasma:紫から黄色へ変化する鮮やかなカラーマップ
- inferno:黒から黄色へ、火のようなグラデーション
- magma:黒から白へ、マグマのような色調変化
- cividis:色覚異常の方向けに特別に設計されたカラーマップ
順序カラーマップ
- Blues, Greens, Reds, Purples:単色の明暗変化
- RdBu:赤から青へのグラデーション(正負の値の表現に適する)
区分的カラーマップ
- tab10, tab20:カテゴリカルデータ向けの鮮明な色の集合
- Accent, Set1, Set2, Set3:カテゴリを区別するための色セット
解説
モジュールのインポート
データの生成
np.meshgridを使ってxとyから2次元データ(X,Y)を作成し、これらを用いてZデータを生成することで3次元データを構築します。
cmapを設定しない場合のcmap
imshowを使用して画像を表示します。interpolationパラメータは補間方法を指定し、「gaussian」に設定するとデータ間がガウス関数で滑らかに補間されます。
extent=[-4, 4, -4, 4]でx軸とy軸の表示範囲を設定し、vmaxとvminでZ軸の値の範囲を指定します。plt.colorbar()を追加するとカラーバーが表示されます。
cmapを指定しない場合は、デフォルトのviridisカラーマップが適用されます。

連続的に変化するcmap
viridisと同様に、連続的に変化するcmapは他にも多数あります。例えば、cividisは次のような特徴を持っています。

単純に段階的に変化するカラーマップとしては、Greysなどがあり、以下のような特徴を持ちます。

発散するcmap
中央から発散していくカラーマップとして、PuOrなどがあります。これは地形データなど中間値を持つデータを可視化する場合に効果的に利用できます。

周期性をもつcmap
hsvなどの周期的なcmapは、Zの最大値と最小値が同じ色になってしまうため注意が必要です。

定性的なcmap
定性的なカラーマップが必要な場合は、tab10などが適しています。

viridisなどで定性的なカラーマップを作成した場合は以下のようになります。

plt.colorbar(im, ticks=np.linspace(-abs(Z).max(), abs(Z).max(), 11))を使用することで、カラーバーに均等間隔の目盛りを設定し、色の変化点を明確に表示しています。
その他のcmap


gist_earthやterrainは地形データや水深データを表示するのに適したカラーマップです。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント