Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで画像を背景にしてグラフを重ねて表示する方法(Python)

Matplotlibでは、画像を背景として読み込み、その上にグラフや線を重ねて描画することができます。データを視覚的に分かりやすく表現したい場合に非常に便利なテクニックです。

実装手順

画像の背景の上にグラフをプロットするには、以下の手順に従います。

  • plt.imread() を使って、画像ファイルを読み込み配列として取得します。
  • plt.subplots() で図(fig)とサブプロット(ax)を作成し、extent=[0, 300, 0, 300] を指定して imshow() で画像を表示します。これにより、画像の座標系がx軸・y軸ともに0〜300の範囲に設定されます。
  • np.array(range(300)) で、0から299までの値を持つ配列 x を作成します。
  • plot() メソッドを使い、linestyle='dotted'(点線)、linewidth=2(線幅2)、color='red'(赤色)を指定して直線 y = x を描画します。
  • plt.show() メソッドで、完成した図を画面に表示します。

サンプルコード

import numpy as np
from matplotlib import pyplot as plt

# 図のサイズとレイアウトを設定
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# 画像を読み込む
im = plt.imread("bird.jpg")

# 図とサブプロットを作成
fig, ax = plt.subplots()

# extentで座標範囲を指定して画像を背景として表示
im = ax.imshow(im, extent=[0, 300, 0, 300])

# プロット用のデータを作成
x = np.array(range(300))

# 点線・赤色の直線を画像の上に重ねて描画
ax.plot(x, x, ls='dotted', linewidth=2, color='red')

# 図を表示
plt.show()

出力結果

上記のコードを実行すると、鳥の画像を背景として、その上に赤色の点線(y = x の直線)が重ねて表示されます。extent パラメータを調整することで、画像とプロットの座標を自由に対応させることができるため、地図上へのデータ可視化や画像解析の結果表示など、さまざまな用途に応用できます。

  1. matplotlibのFuncAnimationを使ってPythonで等高線図をアニメーション化する方法

    Pythonのmatplotlibでは、FuncAnimationクラスを利用することで、等高線図(コンタープロット)を簡単にアニメーション化できます。時間とともに変化するデータを視覚的に表現したい場合に非常に便利な手法です。 等高線図をアニメーション化する手順 10×10×8の形状を持つランダムなデータを作成します。 subplots()メソッドを使って、図(Figure)とサブプロット(Axes)を作成します。 FuncAnimation()クラスを使い、指定した関数*func*を繰り返し呼び出すことでアニメーションを生成します。 フレームごとに等高線の値を更新できるよう、animat

  2. Python Matplotlibで単一のポイント(点)をプロットする方法

    Matplotlibを使えば、たった1つのデータポイントでも簡単にグラフ上へプロットできます。ここでは、単一の点をプロットするための基本的な手順を解説します。 単一ポイントをプロットする手順 x と y のリストを、単一の値で初期化します。 plt.xlim() および plt.ylim() を使って、X軸・Y軸の表示範囲を0〜5に設定します。 plt.grid() を呼び出して、現在の線スタイルでグリッドを描画します。 plot() メソッドでxとyをプロットし、marker=o、markeredgecolor=red、markerfacecolor=green を指定してマーカーの見た目