Matplotlib Colormap 이미지 생성

Beginner

This tutorial is from open-source community. Access the source code

소개

이 튜토리얼은 Python 의 Matplotlib 라이브러리에서 단일 colormap, norm, 그리고 colorbar 를 사용하여 이미지 세트를 만드는 과정을 안내합니다. 데이터를 생성하고, 색상 스케일을 설정하며, 다른 이미지의 norm 변화에 대응하도록 이미지를 업데이트하는 방법을 배우게 됩니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 임포트

먼저, 필요한 라이브러리를 임포트해야 합니다: numpy 와 matplotlib 입니다. 또한 재현성을 보장하기 위해 random seed 를 설정합니다.

import matplotlib.pyplot as plt
import numpy as np

데이터 생성 및 서브플롯 생성

다음으로, 이미지에 대한 데이터를 생성합니다. 3x2 그리드의 서브플롯을 생성하며, 각 서브플롯은 무작위로 생성된 값의 배열을 포함합니다.

np.random.seed(19680801)
Nr = 3
Nc = 2

fig, axs = plt.subplots(Nr, Nc)
fig.suptitle('Multiple images')

images = []
for i in range(Nr):
    for j in range(Nc):
        ## Generate data with a range that varies from one plot to the next.
        data = ((1 + i + j) / 10) * np.random.rand(10, 20)
        images.append(axs[i, j].imshow(data))
        axs[i, j].label_outer()

색상 척도 설정 및 Colorbar 생성

이제 이미지의 색상 척도를 설정하고 값의 범위를 표시하기 위해 colorbar 를 생성합니다. 모든 이미지에 대한 최소 및 최대 값을 찾아 그에 따라 색상 척도를 정규화합니다.

vmin = min(image.get_array().min() for image in images)
vmax = max(image.get_array().max() for image in images)
norm = colors.Normalize(vmin=vmin, vmax=vmax)
for im in images:
    im.set_norm(norm)

fig.colorbar(images[0], ax=axs, orientation='horizontal', fraction=.1)

이미지 업데이트

마지막으로, 다른 이미지의 norm 변경에 응답하도록 이미지를 업데이트합니다. 이를 통해 한 이미지의 colormap 및 색상 척도를 변경하고 다른 모든 이미지가 그에 따라 업데이트되도록 할 수 있습니다.

def update(changed_image):
    for im in images:
        if (changed_image.get_cmap() != im.get_cmap()
                or changed_image.get_clim() != im.get_clim()):
            im.set_cmap(changed_image.get_cmap())
            im.set_clim(changed_image.get_clim())

for im in images:
    im.callbacks.connect('changed', update)

요약

이 랩에서는 Python 의 Matplotlib 라이브러리에서 단일 colormap, norm 및 colorbar 를 사용하여 이미지 세트를 만드는 방법을 배웠습니다. 데이터를 생성하고, 색상 척도를 설정했으며, 다른 이미지의 norm 변경에 응답하도록 이미지를 업데이트했습니다. 이는 동일한 색상 척도와 colormap 으로 여러 데이터 세트를 시각화하는 데 유용한 기술입니다.