カラーマップの正規化 SymLogNorm #

非線形の方法でカラーマップをデータにマッピングするためにノルムを使用するデモ。

2 つのこぶ (1 つは負、もう 1 つは正) で構成される合成データセット。正は 8 倍の振幅です。線形的には、負のこぶはほとんど見えず、そのプロファイルの詳細を確認することは非常に困難です。正の値と負の値の両方に対数スケーリングが適用されるため、各ハンプの形状がはるかに見やすくなります。

を参照してくださいSymLogNorm

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors


def rbf(x, y):
    return 1.0 / (1 + 5 * ((x ** 2) + (y ** 2)))

N = 200
gain = 8
X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)]
Z1 = rbf(X + 0.5, Y + 0.5)
Z2 = rbf(X - 0.5, Y - 0.5)
Z = gain * Z1 - Z2

shadeopts = {'cmap': 'PRGn', 'shading': 'gouraud'}
colormap = 'PRGn'
lnrwidth = 0.5

fig, ax = plt.subplots(2, 1, sharex=True, sharey=True)

pcm = ax[0].pcolormesh(X, Y, Z,
                       norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1,
                                              vmin=-gain, vmax=gain, base=10),
                       **shadeopts)
fig.colorbar(pcm, ax=ax[0], extend='both')
ax[0].text(-2.5, 1.5, 'symlog')

pcm = ax[1].pcolormesh(X, Y, Z, vmin=-gain, vmax=gain,
                       **shadeopts)
fig.colorbar(pcm, ax=ax[1], extend='both')
ax[1].text(-2.5, 1.5, 'linear')
カラーマップの正規化 symlognorm
Text(-2.5, 1.5, 'linear')

特定のデータセットに最適な視覚化を見つけるには、複数の異なるカラー スケールを試す必要がある場合があります。スケーリングと同様に、データ値「Z」に適用される変換の線形領域と対数領域の間の移行がよりスムーズになる (実験的)SymLogNorm使用のオプションもあります。AsinhNorm以下のプロットでは、データセット自体に鋭い特徴がないにもかかわらず、各こぶの周りに等高線のようなアーティファクトが見られる場合があります。スケーリングは、各こぶのasinhより滑らかなシェーディングを示しています。

fig, ax = plt.subplots(2, 1, sharex=True, sharey=True)

pcm = ax[0].pcolormesh(X, Y, Z,
                       norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1,
                                              vmin=-gain, vmax=gain, base=10),
                       **shadeopts)
fig.colorbar(pcm, ax=ax[0], extend='both')
ax[0].text(-2.5, 1.5, 'symlog')

pcm = ax[1].pcolormesh(X, Y, Z,
                       norm=colors.AsinhNorm(linear_width=lnrwidth,
                                             vmin=-gain, vmax=gain),
                       **shadeopts)
fig.colorbar(pcm, ax=ax[1], extend='both')
ax[1].text(-2.5, 1.5, 'asinh')


plt.show()
カラーマップの正規化 symlognorm

スクリプトの合計実行時間: ( 0 分 3.374 秒)

Sphinx-Gallery によって生成されたギャラリー