Hinweis
Zum Ende springen, um den vollständigen Beispielcode herunterzuladen.
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()

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