Matplotlib 으로 바코드 생성하기

Beginner

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

소개

이 랩에서는 Python 의 Matplotlib 을 사용하여 바코드를 생성하는 방법을 보여줍니다. 바코드는 1 과 0 의 이진 배열을 사용하여 생성되며, Axes.imshow를 사용하여 렌더링됩니다.

VM 팁

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

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

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

필요한 라이브러리 임포트

먼저 numpymatplotlib을 포함하여 필요한 라이브러리를 임포트해야 합니다.

import matplotlib.pyplot as plt
import numpy as np

이진 배열 생성

다음으로, 바코드를 생성하는 데 사용될 이진 배열을 생성해야 합니다. 이 예제에서는 다음 이진 배열을 사용합니다.

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])

픽셀 및 DPI 값 설정

바코드에 대한 픽셀 및 DPI 값을 정의해야 합니다. 이 예제에서는 픽셀 값 4 와 DPI 값 100 을 사용합니다.

pixel_per_bar = 4
dpi = 100

Figure 및 Axes 생성

바코드를 위한 figure 와 axes 를 생성해야 합니다. figure 크기를 데이터 포인트 수의 배수로 설정하고, 모든 축을 끕니다.

fig = plt.figure(figsize=(len(code) * pixel_per_bar / dpi, 2), dpi=dpi)
ax = fig.add_axes([0, 0, 1, 1])  ## span the whole figure
ax.set_axis_off()

바코드 렌더링

마지막으로, Axes.imshow를 사용하여 바코드를 렌더링할 수 있습니다. 데이터를 하나의 행을 가진 2D 배열로 변환하기 위해 code.reshape(1, -1)를 사용하고, 정사각형이 아닌 픽셀을 허용하기 위해 imshow(..., aspect='auto')를 사용하며, 흐릿한 가장자리를 방지하기 위해 imshow(..., interpolation='nearest')를 사용합니다.

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

요약

이 랩에서는 Python 의 Matplotlib 을 사용하여 바코드를 생성하는 방법을 배웠습니다. 먼저 필요한 라이브러리를 가져온 다음, 바코드를 생성하는 데 사용될 이진 배열을 만들었습니다. 그런 다음 픽셀 및 DPI 값을 설정하고 figure 와 axes 를 생성했습니다. 마지막으로 Axes.imshow를 사용하여 바코드를 렌더링했습니다.