Strichcode #

Diese Demo zeigt, wie ein Barcode erstellt wird.

Die Abbildungsgröße wird so berechnet, dass die Breite in Pixel ein Vielfaches der Anzahl der Datenpunkte ist, um Interpolationsartefakte zu vermeiden. Außerdem ist der Axesso definiert, dass er sich über die gesamte Figur erstreckt, und alle Axissind ausgeschaltet.

Die Daten selbst werden mit imshowusing gerendert

  • code.reshape(1, -1)um die Daten in ein 2D-Array mit einer Zeile umzuwandeln.

  • imshow(..., aspect='auto')um nichtquadratische Pixel zuzulassen.

  • imshow(..., interpolation='nearest')um unscharfe Kanten zu vermeiden. Das sollte sowieso nicht passieren, weil wir die Zahlenbreite in Pixel feinjustiert haben, aber nur um sicher zu gehen.

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()
Barcode-Demo

Verweise

In diesem Beispiel wird die Verwendung der folgenden Funktionen, Methoden, Klassen und Module gezeigt:

Galerie generiert von Sphinx-Gallery