Barcode#

Diese Demo zeigt, wie ein Barcode erstellt wird.

Die Figurengröße wird so berechnet, dass die Breite in Pixel ein Vielfaches der Anzahl der Datenpunkte ist, um Interpolationsartefakte zu vermeiden. Zusätzlich wird die Achse so definiert, dass sie die gesamte Abbildung abdeckt, und alle Achsen werden ausgeschaltet.

Die Daten selbst werden mit imshow gerendert, unter Verwendung von

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

  • imshow(..., aspect='auto'), um nicht-quadratische Pixel zu ermöglichen.

  • imshow(..., interpolation='nearest'), um verschwommene Kanten zu verhindern. Dies sollte ohnehin nicht passieren, da wir die Pixelbreite der Abbildung fein abgestimmt haben, aber sicherheitshalber.

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

Referenzen

Die Verwendung der folgenden Funktionen, Methoden, Klassen und Module wird in diesem Beispiel gezeigt

Galerie generiert von Sphinx-Gallery