使用 matplotlib 绘制条形码
源码及参考链接
效果图
代码
代码语言:txt复制import numpy as np
import matplotlib.pyplot as plt
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 # 分辨率,默认值也是100
fig = plt.figure(figsize=(len(code)*pixel_per_bar/dpi, 2), dpi=dpi)
ax = fig.add_axes([0, 0, 1, 1]) # 设置坐标轴的范围为整个图窗
ax.set_axis_off() # 隐藏 ax 的坐标轴
ax.imshow(code.reshape(1,-1), # 必须将(N,1)转化为(N,1), 否则会报错
cmap='binary', # 设置为二值图
aspect='auto') # aspect 设置坐标轴的长宽比
plt.show()
简单的介绍其中的 API
- plt.figure()
figsize=(w,h)
窗口的宽和高,单位为英尺;
dpi=100
窗口的分辨率,默认值为100;
num=None
图窗的唯一标识,和 MATLAB 的机制类似的;
- fig.add_axes(rect, projection=None, polar=False)
rect
设置坐标轴在窗口的位置和大小[left, bottom, width, height]
;
projection
投影方式,默认为 None;
polar=false
此项为真时表示 projection='polar'
;