ホームページ  >  記事  >  バックエンド開発  >  Matplotlib で散布図用のカスタム離散カラーバーを作成するにはどうすればよいですか?

Matplotlib で散布図用のカスタム離散カラーバーを作成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 06:37:02561ブラウズ

How can you create a custom discrete colorbar for a scatterplot in Matplotlib?

散布図用の Matplotlib カラーバーの離散化

散布図では、離散データを表すには連続的なカラーバーが常に十分であるとは限りません。離散カラーバーの作成は、基礎となるパターンを効果的に視覚化するために重要です。

これを実現するには、Matplotlib の BoundaryNorm クラスを散布図のノーマライザーとして利用できます。これにより、個別の値が固有の色で表現されるようになります。

カラーバーをカスタマイズする際の 1 つの課題は、特定の値をグレーとして表示するように設定しようとすると発生します。この問題に対処するには、カラー エントリを抽出してオーバーライドすることで、既存のカラー パレットを変更できます。

<code class="python">cmaplist = [cmap(i) for i in range(cmap.N)]
# force the first color entry to be grey
cmaplist[0] = (.5, .5, .5, 1.0)</code>

カラー パレットを変更した後、カスタム カラーマップを作成できます。次に、BoundaryNorm を利用してビニングを定義し、それに応じてデータを正規化します。

<code class="python">cmap = mpl.colors.LinearSegmentedColormap.from_list(
    'Custom cmap', cmaplist, cmap.N)
bounds = np.linspace(0, 20, 21)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)</code>

変更されたカラー パレットと正規化を適用すると、散布図をレンダリングできます。カラーバーを収容するために別個の軸が追加され、離散境界とそれに対応する色を表示するようにカスタマイズされます。

<code class="python">scat = ax.scatter(x, y, c=tag, cmap=cmap, norm=norm)
ax2 = fig.add_axes([0.95, 0.1, 0.03, 0.8])
cb = plt.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm,
    spacing='proportional', ticks=bounds, boundaries=bounds, format='%1i')</code>

このアプローチにより、散布図内の離散データを効果的に伝達するカスタムの離散カラーバーを作成できます。基礎となるパターンをより明確に視覚的に表現します。

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

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