Matplotlibでバーコードを作成する方法【初心者向けコード例付き】
Pythonの可視化ライブラリ「Matplotlib」を使えば、特別な専用ライブラリを導入しなくても、0と1の2値データからシンプルなバーコード風の画像を簡単に生成できます。この記事では、その具体的な手順とサンプルコードをわかりやすく解説します。
Matplotlibでバーコードを作成する手順
以下の手順に従うことで、Matplotlibだけでバーコードのような縞模様の画像を作成できます。
- 図のサイズと余白の設定:
plt.rcParamsを使って、図のサイズやサブプロット間・周囲のパディングを調整します。 - 2値データ(0と1)のリストを作成: バーコードの黒白パターンとなる、0と1で構成される配列を用意します。
- 図(Figure)の作成:
plt.figure(dpi=100)のようにして、新しい図を作成します。既存の図がある場合はそれをアクティブにします。 - 軸(Axes)の追加:
fig.add_axes()メソッドで図にAxesを追加します。 - 軸を非表示にする: バーコードには目盛りや枠線が不要なので、
set_axis_off()で軸をオフにします。 - imshow()メソッドで描画: 手順2で作成したデータを
imshow()メソッドで画像としてプロットします。 - 図を表示: 最後に
show()メソッドを呼び出して、図を画面に表示します。
サンプルコード
実際のコード例は以下の通りです。
import matplotlib.pyplot as plt
import numpy as np
# 図のサイズと自動レイアウトを設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 0と1で構成されるバーコード用の2値配列
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=100で新しい図を作成
fig = plt.figure(dpi=100)
# 図全体を覆うAxesを追加し、軸を非表示にする
ax = fig.add_axes([0, 0, 1, 1])
ax.set_axis_off()
# 2値データを1行の画像として描画
ax.imshow(code.reshape(1, -1), cmap='binary', aspect='auto',
interpolation='nearest')
plt.show()
実行結果
上記のコードを実行すると、0が白、1が黒に対応した縞模様のバーコード風画像が表示されます。cmap='binary' を指定することで、白黒のコントラストがはっきりとした見た目になります。
ポイント解説
- reshape(1, -1): 1次元の配列を1行×N列の2次元配列に変換しています。これにより、横長の縞模様として描画されます。
- aspect='auto': 縦横比を自動調整し、図のサイズに合わせてバーが引き伸ばされます。
- interpolation='nearest': 補間を行わないため、各バーの境界がくっきりと表示されます。
- set_axis_off(): 目盛りや軸ラベルを消すことで、バーコードらしいすっきりした見た目になります。
この手法は、実際の商品コード(JANコードなど)の厳密なエンコードには対応していませんが、データの可視化やデモ、プレゼンテーション資料における装飾的な用途には十分活用できます。より本格的なバーコードが必要な場合は、「python-barcode」などの専用ライブラリの利用も検討してみてください。
-
Matplotlibでpcolormeshをアニメーション化する方法【コード例付き解説】
Matplotlibでpcolormesh(擬似カラープロット)をアニメーション化する方法を、具体的な手順とサンプルコード付きで解説します。 アニメーション化の基本的な流れ pcolormeshをアニメーションさせるには、以下の手順に従います。 figureオブジェクトとサブプロットを作成する numpyを使ってx、y、tのデータポイントを生成する meshgrid関数で座標ベクトルから座標行列(X3、Y3、T3)を作成する pcolormesh()メソッドを使って、不規則な矩形グリッド上に擬似カラープロットを描画する カラーバーをfigureに追加する FuncAnimationクラスを使
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線