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

Patricia Arquette
リリース: 2024-10-25 06:37:02
オリジナル
633 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート