바코드 #

이 데모는 바코드 생성 방법을 보여줍니다.

그림 크기는 보간 아티팩트를 방지하기 위해 픽셀의 너비가 데이터 포인트 수의 배수가 되도록 계산됩니다. 또한 Axes는 전체 그림에 걸쳐 있도록 정의되며 모두 Axis꺼집니다.

imshow데이터 자체는 다음을 사용하여 렌더링됩니다.

  • code.reshape(1, -1)데이터를 하나의 행이 있는 2D 배열로 변환합니다.

  • imshow(..., aspect='auto')정사각형이 아닌 픽셀을 허용합니다.

  • imshow(..., interpolation='nearest')가장자리가 흐려지는 것을 방지합니다. 그림 너비를 픽셀 단위로 미세 조정했기 때문에 이런 일이 발생해서는 안 됩니다. 단지 안전을 위해서입니다.

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

pixel_per_bar = 4
dpi = 100

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()
ax.imshow(code.reshape(1, -1), cmap='binary', aspect='auto',
          interpolation='nearest')
plt.show()
바코드 데모

참조

다음 함수, 메서드, 클래스 및 모듈의 사용이 이 예제에 표시됩니다.

Sphinx-Gallery에서 생성한 갤러리