Observação
Clique aqui para baixar o código de exemplo completo
Código de barras #
Esta demonstração mostra como produzir um código de barras.
O tamanho da figura é calculado de modo que a largura em pixels seja um múltiplo do número de pontos de dados para evitar artefatos de interpolação. Além disso, o
Axes
é definido para abranger toda a figura e todos Axis
são desativados.
Os dados em si são renderizados imshow
usando
code.reshape(1, -1)
para transformar os dados em uma matriz 2D com uma linha.imshow(..., aspect='auto')
para permitir pixels não quadrados.imshow(..., interpolation='nearest')
para evitar bordas borradas. Isso não deve acontecer de qualquer maneira porque ajustamos a largura da figura em pixels, mas apenas por segurança.
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()
Referências
O uso das seguintes funções, métodos, classes e módulos é mostrado neste exemplo: