본문 바로가기
프로그래밍 (Programming)/파이썬 (Python)

Python Matplotlib 데이터 시각화 - imshow 함수 사용법

by codingwalks 2024. 9. 25.
반응형

안녕하세요. 코딩산책입니다.

이번 글에서는 Matplotlib의 imshow 함수를 사용하여 이미지 데이터를 시각화하는 방법을 소개합니다. Matplotlib의 imshow는 이미지 데이터나 2D 배열을 색상 맵으로 시각화하는데 사용됩니다. 이 함수를 통해 이미지 파일을 직접 열어 시각화하거나, 배열 형태로 저장된 데이터의 분포를 색상으로 나타낼 수 있습니다.
 

1. Matplotlib 설치하기

matplotlib의 설치방법은 다음의 글에서 확인이 가능합니다.
2024.09.24 - [프로그래밍 (Programming)/파이썬 (Python)] - Python Matplotlib 데이터 시각화 - 기본 그래프 그리기

또한, 이미지 파일을 처리하기 위해 Pillow 라이브러리를 사용하는 경우가 많습니다. Pillow는 이미지 파일을 열고, 저장하고, 편집하는 데 사용됩니다. 이 라이브러리는 PIL 모듈로도 불리며, 설치하려면 다음 명령어를 사용합니다.

pip install Pillow

 

2. imshow 함수로 이미지 시각화하기

2.1. 배열 데이터를 시각화하기

먼저 2D 배열 데이터를 imshow 함수로 시각화해보겠습니다. imshow는 배열의 값을 색상으로 표현합니다.

import matplotlib.pyplot as plt
import numpy as np

# Create 2D array data
data = np.random.rand(10, 10)

# Visualize array data with imshow
plt.imshow(data, cmap='viridis')

# Add colorbar
plt.colorbar()

plt.title("Random Data Visualization")
plt.show()
• np.random.rand(10, 10)은 10x10 크기의 무작위 배열을 생성합니다.
• imshow는 해당 배열 데이터를 색상으로 변환해 시각화합니다. cmap='viridis'는 색상 맵(Color Map)을 설정하는 옵션입니다. viridis는 자주 사용되는 컬러맵 중 하나입니다.
• plt.colorbar()는 그래프에 색상 값을 기준으로 하는 컬러바를 추가합니다.

2D data visualize

2.2. 이미지 파일을 불러와 시각화하기

이제 이미지 파일을 불러와 imshow로 출력하는 방법을 알아보겠습니다. 여기서는 Pillow 라이브러리의 Image 모듈을 사용하여 이미지 파일을 열고, Matplotlib의 imshow 함수로 시각화합니다.

import matplotlib.pyplot as plt
from PIL import Image

# Load image file
image = Image.open('path_to_your_image.jpg')

# Visualize image with imshow
plt.imshow(image)

# Add title
plt.title("Image Visualization")

plt.axis('off')  # Remove axis
plt.show()
• Image.open()은 이미지 파일을 여는 함수로, 불러온 이미지를 image 변수에 저장합니다.
 imshow 함수로 이미지를 화면에 출력합니다.
 plt.axis('off')는 이미지의 축을 숨기기 위한 설정입니다. 이미지 자체에 집중하고 싶을 때 유용합니다.

image visualization

 

3. 이미지 데이터를 배열로 변환하여 시각화하기

Pillow 라이브러리로 불러온 이미지를 배열 형태로 변환한 뒤 imshow로 시각화할 수도 있습니다. 이를 통해 이미지의 픽셀 데이터를 배열로 조작할 수 있습니다.

import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

# Load image file
image = Image.open('path_to_your_image.jpg')

# Convert image to NumPy array
image_array = np.array(image)

# Visualize converted array with imshow
plt.imshow(image_array)

# Add title
plt.title("Image Array Visualization")
plt.axis('off')  # Remove axis

plt.show()
• np.array(image)는 이미지를 배열로 변환하는 함수입니다. 이를 통해 이미지 데이터를 다양한 방식으로 변형하거나 분석할 수 있습니다.
• 변환된 배열은 imshow로 시각화할 수 있습니다.

array visualization

 

4. 컬러맵 설정하기

imshow 함수는 기본적으로 배열 데이터를 색상으로 변환하기 위해 컬러맵(Color Map)을 사용합니다. 다양한 컬러맵을 통해 데이터를 시각적으로 구분할 수 있습니다. 다음은 몇 가지 자주 사용되는 컬러맵을 설정하는 예제입니다.

import matplotlib.pyplot as plt
import numpy as np

# Create 2D array data
data = np.random.rand(10, 10)

# List of colormaps
colormaps = ['viridis', 'plasma', 'inferno', 'gray']

# Output multiple graphs
plt.figure(figsize=(10, 10))

for i, cmap in enumerate(colormaps):
    plt.subplot(2, 2, i+1)
    plt.imshow(data, cmap=cmap)
    plt.title(f"Colormap: {cmap}")
    plt.colorbar()

plt.tight_layout()
plt.show()
• cmap 인자를 사용하여 다양한 컬러맵을 설정할 수 있습니다. 이 예제에서는 viridis, plasma, inferno, gray 컬러맵을 사용했습니다.
• plt.subplot()을 이용하여 여러 개의 그래프를 동시에 출력하고 각각 다른 컬러맵을 적용합니다.

color map

 

5. 결론

imshow 함수는 이미지 파일뿐만 아니라 배열 데이터까지 다양한 방식으로 시각화할 수 있는 강력한 도구입니다. 특히, 컬러맵을 이용한 2D 배열 데이터 시각화는 데이터의 특성을 명확하게 드러내는 데 유용합니다. Pillow 라이브러리와 함께 사용하면 이미지 파일을 불러와 처리하거나, 이미지 데이터를 배열로 변환하는 작업도 쉽게 수행할 수 있습니다.
이 글에서는 Matplotlib의 imshow 함수 사용법과 다양한 이미지 시각화 방법을 알아보았습니다. imshow는 2D 데이터나 이미지를 시각적으로 표현하는 데 매우 유용하며, 컬러맵을 사용하면 데이터의 패턴을 더 쉽게 이해할 수 있습니다.
 

해당 포스트가 유용하셨다면 하단의 좋아요와 구독하기 부탁드립니다. ^^

Buy me a coffee

 

반응형