條碼#

這個範例示範如何產生條碼。

計算圖形大小,使寬度(以像素為單位)為資料點數的倍數,以防止插補失真。此外,將 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()
barcode demo

參考文獻

本範例顯示了以下函數、方法、類別和模組的使用

由 Sphinx-Gallery 產生的圖庫