Matplotlib を使ってバーコードを作成する

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、Python の Matplotlib を使ってバーコードを作成する方法を示します。バーコードは、1 と 0 のバイナリ配列を使って生成され、Axes.imshow を使ってレンダリングされます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習します。

時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすれば、迅速に問題を解決します。

必要なライブラリをインポートする

まず、numpymatplotlib などの必要なライブラリをインポートする必要があります。

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])

ピクセルと DPI の値を設定する

バーコードのピクセルと DPI の値を定義する必要があります。この例では、ピクセル値を 4、DPI 値を 100 とします。

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

バーコードを描画する

最後に、Axes.imshow を使ってバーコードを描画できます。データを 1 行の 2 次元配列に変換するために code.reshape(1, -1) を使い、非正方形のピクセルを許容するために imshow(..., aspect='auto') を使い、ぼかしたエッジを防ぐために imshow(..., interpolation='nearest') を使います。

ax.imshow(code.reshape(1, -1), cmap='binary', aspect='auto',
          interpolation='nearest')
plt.show()

まとめ

この実験では、Python の Matplotlib を使ってバーコードを作成する方法を学びました。まず必要なライブラリをインポートし、次にバーコードを生成するために使用するバイナリ配列を作成しました。その後、ピクセルと DPI の値を設定し、グラフと軸を作成しました。最後に、Axes.imshow を使ってバーコードを描画しました。