PythonのMatplotlib.pyplot.quiverの仕組みと使い方をわかりやすく解説
Matplotlib.pyplot.quiverとは?
quiverは、Matplotlibが提供する矢印(ベクトル)を描画するための関数です。2次元平面上にベクトル場を可視化したい場合に非常に便利で、物理シミュレーションや流体解析などの分野でよく使われています。各ベクトルは始点(x, y)と成分(u, v)によって定義され、指定した位置から矢印として描かれます。
以下の手順でquiverを使ったベクトルの描画を行うことができます。
- 図のサイズを設定し、サブプロット間および周囲の余白を調整します。
- NumPy配列を使ってベクトルの座標データを作成します。
- x、y、u、v の各データポイントを取得します。
- figure()メソッドで新しい図を作成するか、既存の図をアクティブにします。
- gca()メソッドで現在の軸(Axes)を取得します。
- 軸のx方向・y方向の表示範囲(リミット)を設定します。
- 現在の図を再描画するにはdraw()メソッドを使用します。
- 図を画面に表示するにはshow()メソッドを使用します。
コード例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True soa = np.array([[0, 0, 3, 2], [0, 0, 4, 5], [0, 0, 9, 9]]) X, Y, U, V = zip(*soa) plt.figure() ax = plt.gca() ax.quiver(X, Y, U, V, angles='xy', scale_units='xy', scale=1, color=['red', 'green', 'yellow']) ax.set_xlim([-1, 10]) ax.set_ylim([-1, 10]) plt.draw() plt.show()
主要なパラメータの説明
この例では、soaという配列に3つのベクトルを定義しています。各行は「始点x、始点y、終点x、終点y」を表しており、zip(*soa)によってX、Y、U、Vに分解されます。quiver()に渡している主な引数は以下の通りです。
- angles='xy':矢印の角度をx-y座標系に基づいて計算します。これにより、uとvの値がそのまま矢印の向きに反映されます。
- scale_units='xy':矢印の長さの単位をx-y座標系に合わせます。
- scale=1:スケーリング係数を1にすることで、矢印の長さがu、vの値と一致します。
- color:各ベクトルの色を個別に指定できます。この例では赤・緑・黄の3色を割り当てています。
実行結果
このコードを実行すると、原点(0, 0)から伸びる3本の矢印が描画されます。それぞれの矢印は指定された色で表示され、(3, 2)、(4, 5)、(9, 9)の位置まで伸びていることが確認できます。これにより、複数のベクトルをひとつのグラフ上で直感的に比較することが可能になります。

-
Matplotlibで図のX軸にステップ(目盛り)を設定する方法
PythonのMatplotlibで図のX軸にステップ(目盛り)を設定するには、set_xticks() および set_xticklabels() メソッドを使用します。以下の手順で実装できます。 手順 データポイントのリスト x を作成します。 subplot() メソッドを使って、現在の図にサブプロットを追加します。 set_xticks() でX軸の目盛りの位置を指定し、set_xticklabels() でラベルを設定します。このとき、引数に rotation=45 を指定すると、ラベルを45度回転させて表示できます。 図を表示するには、show() メソッドを使用します。 コー
-
PythonのMatplotlibでワッフルチャートを作成する方法を解説
ワッフルチャート(Waffle Chart)は、目標に対する進捗状況を視覚的に表現するのに適した、魅力的なデータ可視化手法です。四角いマスが並ぶ様子がワッフルに似ていることからこの名前が付けられており、構成比や達成率を直感的に伝えられます。Pythonでワッフルチャートを作成するには、pywaffleライブラリを使用します。新しい図を作成する際、または既存の図を有効化する際に、FigureClass=Waffleを指定することで簡単に描画できます。作成手順辞書を使ってPandasのデータフレームを作成します。plt.figure()で新しい図を作成する際に、FigureClass=Waffle