데이터 시각화 시 차트에 로고나 워터마크를 삽입하면 저작권 보호나 브랜딩 측면에서 유용합니다. Matplotlib에서는 figimage() 메서드를 사용해 그래프 위에 워터마크 이미지를 간단하게 추가할 수 있습니다.
워터마크 이미지 추가 절차
- 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
- get_sample_data() 메서드를 사용하여 샘플 데이터 파일을 가져옵니다.
- figure와 서브플롯 세트를 생성합니다.
- plot() 메서드로 데이터 포인트를 그립니다. 이때 alpha=0.7로 투명도를 지정하고, 마커 면 색상은 mfc="orange"로 설정합니다.
- figimage() 메서드로 리샘플링되지 않은 원본 크기의 이미지를 figure 위에 추가합니다.
- show() 메서드를 호출하여 최종 figure를 화면에 표시합니다.
예제 코드
import numpy as np
import matplotlib.cbook as cbook
import matplotlib.image as image
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
with cbook.get_sample_data('logo2.png') as file:
im = image.imread(file)
fig, ax = plt.subplots()
ax.plot(np.sin(10 * np.linspace(0, 1)), '-o', ms=20,
alpha=0.7, mfc='orange')
fig.figimage(im, 10, 10, zorder=3, alpha=.5)
plt.show()코드 설명
cbook.get_sample_data()는 Matplotlib가 기본으로 제공하는 샘플 파일을 불러오는 함수로, 여기서는 'logo2.png' 로고 이미지를 읽어옵니다. image.imread()로 이미지를 배열 형태로 변환한 뒤, figimage(im, 10, 10, zorder=3, alpha=.5)를 호출하여 figure의 좌표 (10, 10) 위치에 워터마크를 배치합니다.
여기서 zorder=3은 그려진 선 그래프보다 앞쪽에 이미지를 배치한다는 의미이며, alpha=.5는 워터마크를 반투명하게 만들어 그래프 내용이 가려지지 않도록 합니다. 이처럼 alpha 값을 조절하면 워터마크의 농도를 자유롭게 변경할 수 있습니다.
실행 결과
코드를 실행하면 주황색 마커가 찍힌 사인 곡선 그래프 위에 반투명한 로고 워터마크가 함께 표시됩니다.