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