Python Matplotlibで軸上にベクトル場をプロットする方法
Matplotlibを使って、図の軸上にベクトル場(矢印場)をプロットするには、quiver() メソッドを使用します。本記事では、渦状のベクトル場を描画する具体的な手順とサンプルコードを紹介します。
ベクトル場プロットの手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
NumPy を使って X、Y、T、R、U、V の各データポイントを作成します。
現在の図に Axes(座標軸)を追加し、それをカレントの軸として設定します。
quiver() メソッドで3次元の矢印場をプロットします。
show() メソッドで図を表示します。
サンプルコード
import numpy as np import matplotlib.pyplot as plt # 図のサイズとレイアウトを設定 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 8x8 のグリッドを作成 n = 8 X, Y = np.mgrid[0:n, 0:n] # 各点の角度と半径を計算 t = np.arctan2(Y - n / 2., X - n / 2.) R = 10 + np.sqrt((Y - n / 2.0) ** 2 + (X - n / 2.0) ** 2) # 半径と角度から速度成分 U, V を算出 U, V = R * np.cos(T), R * np.sin(T) # 軸を追加してベクトル場を描画 plt.axes([0.025, 0.025, 0.95, 0.95]) plt.quiver(X, Y, U, V, R, cmap="copper") plt.show()
コードの解説
np.mgrid を使うことで、8×8 のグリッド上の座標点(X, Y)を一度に生成できます。続いて np.arctan2() で各点がグリッド中心から見てどの方角にあるかを示す角度 T を求め、中心からの距離 R を計算しています。この T と R を極座標から直交座標へ変換することで、矢印の x 方向成分 U と y 方向成分 V が得られます。
quiver() の第5引数に R を渡すことで、矢印の色が距離に応じて変化します。cmap="copper" を指定すると、銅色系のカラーマップでグラデーション表示されます。
出力結果
実行すると、グリッドの中心を起点として放射状に広がる渦状のベクトル場が表示されます。中心から離れるほど矢印が長く(強く)なり、色も変化するため、ベクトルの大きさと向きをひと目で把握できます。
-
Matplotlibで画像を背景にしてグラフを重ねて表示する方法(Python)
Matplotlibでは、画像を背景として読み込み、その上にグラフや線を重ねて描画することができます。データを視覚的に分かりやすく表現したい場合に非常に便利なテクニックです。 実装手順 画像の背景の上にグラフをプロットするには、以下の手順に従います。 plt.imread() を使って、画像ファイルを読み込み配列として取得します。 plt.subplots() で図(fig)とサブプロット(ax)を作成し、extent=[0, 300, 0, 300] を指定して imshow() で画像を表示します。これにより、画像の座標系がx軸・y軸ともに0〜300の範囲に設定されます。 np.arra
-
PythonのMatplotlibにおけるプロットの階層構造をわかりやすく解説
Matplotlibは、NumPyを基盤として構築されたPythonのデータ可視化ライブラリです。グラフやチャートを作成する際に最も広く使われているライブラリの一つですが、その内部は「木構造(ツリー構造)」のような階層的なオブジェクト構造を持っています。各プロットは、この階層内のオブジェクトによって構成されています。 Matplotlibの階層構造の全体像 Matplotlibの構造を理解するうえで、最上位から順に「Figure」「Axes」「Axis」などのオブジェクトがどのように関係しているかを把握することが重要です。以下、それぞれの役割を詳しく見ていきましょう。 Figure(フィギュア