[matplotlib] 132. ダークモード発散カラーマップ

matplotlib

はじめに

データの可視化において、カラーマップの選択は極めて重要です。特に最近のトレンドであるダークモードのインターフェースに合わせたカラーマップの需要が高まっています。今回は、Matplotlib 3.10.0で新たに追加された3つのダークモード発散カラーマップについて詳しく解説します。

発散カラーマップとは

発散カラーマップ(Diverging colormap)とは、中央を境に2つの異なる色相が反対方向に変化していくカラーマップです。通常、データの中心値(多くの場合はゼロ)を基準として、正の値と負の値を視覚的に区別することができます。

従来の発散カラーマップでは、中心が明るく(白など)、両端が暗い色になるものが一般的でした。しかし、ダークモードのインターフェースでは、この配色では見づらくなってしまいます。

新しいダークモード発散カラーマップ

Matplotlib 3.10.0で追加された「berlin」、「managua」、「vanimo」は、従来の発散カラーマップとは逆になっています。これらは中心が最も暗く、両端に向かって明るくなるという特徴を持っています。

各カラーマップの特徴

  • berlin: 青と赤のコントラストを使用。
  • managua: 青とオレンジのコントラストを使用。
  • vanimo: 緑と紫のコントラストを使用。

ダークモード発散カラーマップのメリット

これらのカラーマップには以下のようなメリットがあります:

  • ダークモードとの親和性: 暗い背景の画面に表示しても見やすい
  • 目の疲労軽減: 全体的に明度が抑えられているため、長時間の閲覧でも目に優しい
  • データの中心と極値の区別: 中心値(多くの場合はゼロ)が最も暗く表示されるため、極値との区別が明確
  • 色覚多様性への配慮: 色覚多様性に配慮して設計されている

実際の使用例

これらのカラーマップは以下のような場面で特に効果的です:

  • 温度差や標高差などの相対値の可視化
  • 金融データの利益/損失表示
  • 科学データ(磁場、電場など)の方向性を持つデータの表示
  • ダークモードUIを採用したダッシュボードやアプリケーション内のデータビジュアライゼーション

コード&解説

モジュールのインポート

バージョン

カラーマップの比較

コード解説:

  • データ生成部分: np.linspaceを使って-3から3までの範囲に100点のx座標とy座標を生成し、meshgridで2次元グリッドを作成しています。そして、Z = np.sin(X) * np.cos(Y)という式で波形のようなサンプルデータを生成しています。
  • プロット設定部分: 1行3列のサブプロットを作成し、figsize=(10, 3)で横長の図を設定しています。
  • カラーマップ適用部分: ‘berlin’、’managua’、’vanimo’の3つのカラーマップをリストに格納し、forループで各サブプロットに異なるカラーマップを適用しています。pcolormesh関数でヒートマップを描画し、各プロットにカラーバーを追加しています。
  • 最終処理: plt.tight_layout()でプロットの配置を最適化し、”darc_cmap.png”という名前で画像を保存してから表示しています。

まとめ

ダークモード発散カラーマップ「berlin」、「managua」、「vanimo」は、データ可視化の新しい可能性を開くものです。ダークモードのインターフェースが一般的になる中、これらのカラーマップは視認性と美しさを両立させた選択肢を提供してくれます。

データの性質や表示する環境に合わせて、適切なカラーマップを選択することで、より効果的なデータ可視化が可能になるでしょう。

参考

What's new in Matplotlib 3.10.0 (December 13, 2024) — Matplotlib 3.10.6 documentation

コメント