Python

Python seaborn チュートリアル プロットの美学 カラーパレットの選択 (5)

原文のドキュメントはこちらから。

発散するカラーパレット

カラーパレットの3番目のクラスは「発散」と呼ばれている。これらのパレットは、大きな低値と高値の両方が興味深いデータで、中間点の値(多くの場合は0)にまたがっている場合に使用され、減弱されるべきである。良い発散パレットを選択するためのルールは、良いシーケンシャルパレットと似ているが、カラーマップには2つの支配的な色相があり、各極に(またはその近くに)1つずつあるべきであることを除いては、同じである。また、開始値が同じような明るさと彩度であることも重要。

知覚的に均一な発散パレット

seabornには、知覚的に統一された発散する2つのパレットが含まれている。vlag と icefire である。どちらも青と赤を極点に使用しており、多くの人が直感的に「寒さ」と「暑さ」として処理している。

sns.color_palette("vlag", as_cmap=True)
sns.color_palette("icefire", as_cmap=True)

カスタム発散パレット

seaborn関数 diverging_palette()を使って、発散データ用のカスタムカラーマップを作成することもできる。この関数は husl カラーシステムを使って発散パレットを作成する。2つの色相 (度数単位) と、オプションで両極端の明度と彩度の値を渡す。husl を使うと、極端な値とその結果として得られる中間点への傾斜が、知覚的には完全に均一ではないが、バランスのとれたものになる。

sns.diverging_palette(220, 20, as_cmap=True)

冷徹なアプローチで平凡な場所に迷い込むときに便利。

sns.diverging_palette(145, 300, s=60, as_cmap=True)

また、中間点が暗いパレットを作ることも可能。

sns.diverging_palette(250, 30, l=65, center="dark", as_cmap=True)

ここで強調しておきたいのは、赤と緑の使用は、直感的ではあるが、避けるべきであるということ。

その他の発散パレット

Matplotlibには、Color Brewerパレットを含む、他にもいくつかの良い発散パレットが組み込まれている。

sns.color_palette("Spectral", as_cmap=True)

そして、中間値と両極端のコントラストが少ないcoolwarm パレット。

sns.color_palette("coolwarm", as_cmap=True)

ご覧のように、ビジュアライゼーションで色を使用するためのオプションはたくさんある。Seabornは、良いデフォルト値を使用し、多くの柔軟性を提供しようとしている。

この議論はまだ序章に過ぎないが、ビジュアライゼーションでの色の使い方のテクニックを学ぶための良いリソースがたくさんある。その素晴らしい例として、NASA地球観測所のブログ記事がある。matplotlibのドキュメントには、カラーマップの知覚特性のいくつかを説明したチュートリアルもある。