散布図のポイントの色をボイド率の値に対応させたいのですが、違いを増幅するために対数スケールで表示します。これを行いましたが、plt.colorbar()を実行すると、実際のボイド率が本当に必要なときに、ボイド率のログが表示されます。[0.00001,1]に属するボイド率の適切なラベルを使用して、カラーバーに対数スケールを作成するにはどうすればよいですか?
これは私が現在持っているプロットの画像ですが、ボイド率のカラーバーは、その対数ではなく、実際のボイド率に対応するように適切にラベル付けされていません。
fig = plt.figure()
plt.scatter(x,y,edgecolors='none',s=marker_size,c=np.log(void_fraction))
plt.colorbar()
plt.title('Colorbar: void fraction')
ご協力いただきありがとうございます。
カラーマッピングと正規化がどのように機能するかを説明しているドキュメントのセクションがあります(これは開発ドキュメントへのリンクですが、mplのすべてのバージョンに適用されます。メインラインのドキュメントはすぐに公開されます)
matplotlib
カラーマッピングを行う方法は2つのステップに分かれています。最初に、渡すデータをにマッピングするNormalize
関数(のサブクラスでラップアップmatplotlib.colors.Normalize
)です[0, 1]
。2番目のステップでは、値を[0,1]
-> RGBA空間にマッピングします。
kwarg LogNorm
で渡される正規化クラスを使用するだけですnorm
。
plt.scatter(x,y,edgecolors='none',s=marker_size,c=void_fraction,
norm=matplotlib.colors.LogNorm())
プロット用にデータをスケーリング/微調整する場合はmatplotlib
、自分で行うよりも変換を行わせる方が適切です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加