메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
컬러맵 정규화 SymLogNorm #
비선형 방식으로 컬러맵을 데이터에 매핑하기 위해 norm을 사용하는 데모.
하나는 음수이고 다른 하나는 양수인 2개의 혹으로 구성된 합성 데이터 세트이며 진폭이 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')

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()

스크립트의 총 실행 시간: ( 0분 3.374초)