Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib – Python에서 이미지 배경 위에 그래프 그리기

Matplotlib을 사용하면 이미지 파일을 배경으로 불러온 뒤, 그 위에 원하는 그래프를 겹쳐 그릴 수 있습니다. 데이터 시각화에서 이미지와 그래프를 함께 표현해야 할 때 유용하게 활용되는 기법입니다. 이미지 배경 위에 그래프를 그리려면 다음 단계를 따르면 됩니다.

  • 이미지 불러오기 – 파일에서 이미지를 읽어 배열(array) 형태로 가져옵니다.
  • figure와 subplot 생성 – figure(fig)를 만들고, extent를 [0, 300, 0, 300]으로 지정한 subplot(ax)을 추가합니다. extent는 이미지가 표시될 좌표 범위를 결정합니다.
  • x 배열 생성 – range(300)을 이용해 배열 x를 만듭니다.
  • 그래프 그리기 – plot() 메서드로 x를 그리되, linestyle=dotted(점선), linewidth=2, color=red 옵션을 지정합니다.
  • 결과 표시 – show() 메서드를 호출하여 완성된 그림을 화면에 출력합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
im = plt.imread("bird.jpg")
fig, ax = plt.subplots()
im = ax.imshow(im, extent=[0, 300, 0, 300])
x = np.array(range(300))
ax.plot(x, x, ls='dotted', linewidth=2, color='red')
plt.show()

코드 설명

plt.imread()는 이미지 파일을 NumPy 배열로 읽어 들이며, ax.imshow()는 해당 배열을 좌표축 위에 이미지로 렌더링합니다. 이때 extent=[0, 300, 0, 300]을 지정하면 이미지의 좌하단이 (0, 0), 우상단이 (300, 300)에 맞춰지므로, 이후 그리는 그래프의 좌표계와 이미지가 정확히 정렬됩니다. 마지막으로 ax.plot()으로 그린 y=x 직선이 이미지 배경 위에 빨간 점선으로 표시됩니다.

실행 결과

Matplotlib – Python에서 이미지 배경 위에 그래프 그리기

실행하면 새(bird) 이미지를 배경으로 하고, 그 위에 빨간색 점선의 대각선 그래프가 겹쳐진 그림을 확인할 수 있습니다.