소개
이 랩에서는 Python 의 Matplotlib 을 사용하여 바코드를 생성하는 방법을 보여줍니다. 바코드는 1 과 0 의 이진 배열을 사용하여 생성되며, Axes.imshow를 사용하여 렌더링됩니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
필요한 라이브러리 임포트
먼저 numpy와 matplotlib을 포함하여 필요한 라이브러리를 임포트해야 합니다.
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를 사용하여 바코드를 렌더링했습니다.