ホームページ >バックエンド開発 >Python チュートリアル >## Matplotlib で散布図用の離散カラーバーを作成するには?

## Matplotlib で散布図用の離散カラーバーを作成するには?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 09:13:28987ブラウズ

## How to Create a Discrete Colorbar for Scatterplots in Matplotlib?

Matplotlib Discrete Colorbar

概要

Matplotlib は、データ視覚化用の人気のある Python ライブラリです。散布図は、データ ポイントの二変量分布を表示するために使用される一般的なタイプのプロットです。場合によっては、各データ ポイントを固有の色で表すことが望ましい場合があります。この記事では、Matplotlib で散布図の離散カラーバーを作成し、整数タグ値を特定の色に効果的にマッピングする方法を説明します。

BoundaryNorm の使用

離散カラーバーを作成するには、BoundaryNorm を使用します。散布図のノーマライザーとして使用します。 BoundaryNorm は、データ範囲を一連のビンに分割し、各ビンは特定の色に対応します。次の Python コードは、BoundaryNorm を使用して離散カラーバーを作成する方法を示しています。

<code class="python">import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt

x = np.random.rand(20)  # Define the data
y = np.random.rand(20)  # Define the data
tag = np.random.randint(0, 20, 20)

cmap = plt.cm.jet  # Define the colormap
bounds = np.linspace(0, 20, 21)  # Define the bins for the colorbar
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)  # Create the BoundaryNorm

plt.scatter(x, y, c=tag, cmap=cmap, norm=norm)  # Create the scatterplot with the discrete colorbar

plt.colorbar()  # Display the colorbar</code>

このコードは、ランダムに生成された 20 個のデータ ポイントを含む散布図を作成します。各データ ポイントには、0 ~ 19 のランダムな整数のタグ値が割り当てられます。カラーバーには 20 個の異なる色が表示され、各色は特定のタグ値に対応します。

カラーバーのカスタマイズ

場合によっては、カラーバーの色をカスタマイズすることが望ましい場合があります。これは、LinearSegmentedColormap クラスを使用してカスタム カラーマップを作成することで実現できます。次の Python コードは、タグ値 0 に灰色、タグ値 1 ~ 20 にさまざまな色を使用してカスタム カラーマップを作成する方法を示しています。

<code class="python">cmaplist = [cmap(i) for i in range(cmap.N)]  # Extract all colors from the original colormap
cmaplist[0] = (.5, .5, .5, 1.0)  # Override the first color with gray

cmap = mpl.colors.LinearSegmentedColormap.from_list('Custom cmap', cmaplist, cmap.N)  # Create the custom colormap</code>

カスタム カラーマップを定義すると、次のように散布図を作成します。

<code class="python">plt.scatter(x, y, c=tag, cmap=cmap, norm=norm)</code>

このコードは、以前と同じデータ ポイントを使用して散布図を作成しますが、カラーバーにはタグ値 0 を表す灰色のカスタム カラーが表示されます。

最適化視覚的な明瞭さのために

多数の色を含む個別のカラーバーを使用すると幅広いオプションが提供されますが、視覚的な明瞭さを考慮することが重要です。多数の異なる色があると、特定の値を視覚的に区別することが困難になる場合があります。場合によっては、使用する色の数を減らしたり、類似したタグ値を色の範囲にグループ化したりすると有益な場合があります。最終的に、色と色の範囲の最適な選択は、特定のデータとプロットの使用目的によって異なります。

以上が## Matplotlib で散布図用の離散カラーバーを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。