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

파이썬 Matplotlib로 바코드 생성하기: 단계별 예제 가이드


Matplotlib은 주로 데이터 시각화에 사용되는 라이브러리지만, imshow() 함수를 활용하면 0과 1로 구성된 이진 배열을 검은색·흰색 막대 패턴으로 변환해 간단한 바코드 형태의 이미지를 만들 수 있습니다. 아래 단계를 따라 하면 누구나 손쉽게 구현할 수 있습니다.

바코드 생성 단계

  1. 그림 크기 설정: figure 크기를 지정하고 서브플롯 사이 및 주변 여백(padding)을 조정합니다.
  2. 이진수 배열 생성: 0과 1로 이루어진 numpy 배열을 준비합니다. 이 값들이 바코드의 막대 패턴이 됩니다.
  3. figure 생성: dpi=100 옵션으로 새 figure를 만들거나 기존 figure를 활성화합니다.
  4. 축 추가: figure에 axes(축)를 추가합니다.
  5. 축 숨기기: set_axis_off()를 호출해 축과 눈금을 제거합니다.
  6. 데이터 시각화: imshow() 메서드로 2단계에서 만든 배열을 플롯합니다.
  7. 결과 출력: show() 메서드로 최종 figure를 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

code = np.array([
   1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1,
   0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0,
   1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1,
   1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1])

fig = plt.figure(dpi=100)

ax = fig.add_axes([0, 0, 1, 1])
ax.set_axis_off()

ax.imshow(code.reshape(1, -1), cmap='binary', aspect='auto',
          interpolation='nearest')

plt.show()

핵심 파라미터 설명

  • code.reshape(1, -1): 1차원 배열을 1행 × N열의 2차원 배열로 변환해 가로로 긴 막대 형태가 되도록 합니다.
  • cmap='binary': 1은 검은색, 0은 흰색으로 표현되어 실제 바코드처럼 보이게 합니다.
  • aspect='auto': 각 요소가 화면을 꽉 채우도록 종횡비를 자동으로 조절합니다.
  • interpolation='nearest': 픽셀 사이 보간을 하지 않아 막대 경계가 선명하게 유지됩니다.

실행 결과

파이썬 Matplotlib로 바코드 생성하기: 단계별 예제 가이드

위 코드를 실행하면 불규칙한 검은색 막대들이 나란히 배치된 바코드 형태의 이미지가 출력됩니다. 이 방식은 EAN이나 Code128 같은 실제 상용 바코드 규격은 아니지만, 시각적 데모나 교육용 예제로 활용하기에 매우 적합합니다.