散布図では、離散データを表すには連続的なカラーバーが常に十分であるとは限りません。離散カラーバーの作成は、基礎となるパターンを効果的に視覚化するために重要です。
これを実現するには、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 サイトの他の関連記事を参照してください。