はじめに
このページでは、matplotlibを使用して等高線図とカラーマップにログスケールのカラーバーを表示する方法について解説しています。データの広い範囲を効果的に可視化するために役立つ技術で、特にLogNormの活用方法や具体的な実装例を詳しく紹介しています。データ分析やPythonでのグラフ作成に役立つ内容です。
下準備
モジュールのインポート
データの生成
データには回転方物面のデータを用いました。

等高線
ログスケールのカラーバーを表示

contourf() 関数に locator=ticker.LogLocator() を指定することで、カラーバーをログスケールで表示できます。
ログカラーバーの目盛りを調整

np.power(10, lev_exp)により、10の累乗の配列を得られます。そのためlevsは[0.1, 1, 10, 100]となります。contourf()で levs, norm=colors.LogNorm()と指定すれば、levsの値にカラーバーの目盛りが設定されます。
カラーマップ
ログスケールのカラーバーを表示

pcolor() 関数に norm=colors.LogNorm(vmin=Z.min(), vmax=Z.max()) を指定することで、カラーバーをログスケールで表示できます。
ログカラーバーの目盛りを調整

カラーバーの範囲はcbar.mappable.set_clim(1e0,1e2)
で設定できます。以前はcbar.set_clim(1e0,1e2)
で調整できましたが、
The set_clim function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use ScalarMappable.set_clim instead.
という警告が出るようになり、mappable
を追加する必要があります。詳細は以下を参照してください。
目盛りを文字にする

fig.colorbar()関数でticks=levsを指定してラベルを表示する位置に目盛りをセットした後、cbar.ax.set_yticklabels([‘Low’, ‘Medium’, ‘High’])を使用することで、目盛りを文字表示に変更できます。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント