はじめに
Matplotlib は、Python におけるデータ可視化ライブラリであり、ユーザーが幅広い 2D および 3D プロットを作成できるようにします。Matplotlib の多くの便利な機能の 1 つは、ベクトル場を表示するクイバープロットを作成する機能です。
この実験では、Matplotlib のquiver()とquiverkey()関数のいくつかの高度なオプションについて説明します。これらの関数を使用すると、クイバープロットの矢印のカスタマイズが可能で、矢印のスケール、枢軸点、矢印の頻度などを含みます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使用して練習します。
場合によっては、Jupyter Notebook が読み込み終了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
プロット幅に応じて矢印がスケーリングされる(ビューではない)
quiver()関数を使用してクイバープロットを作成できます。デフォルトでは、プロット内の矢印はデータに応じてスケーリングされ、プロット自体に応じてスケーリングされるわけではありません。これにより、プロットの端に近い矢印を見るのが困難になる場合があります。
import matplotlib.pyplot as plt
import numpy as np
X, Y = np.meshgrid(np.arange(0, 2 * np.pi,.2), np.arange(0, 2 * np.pi,.2))
U = np.cos(X)
V = np.sin(Y)
fig1, ax1 = plt.subplots()
ax1.set_title('Arrows scale with plot width, not view')
Q = ax1.quiver(X, Y, U, V, units='width')
qk = ax1.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',
coordinates='figure')
plt.show()
枢軸点と矢印の頻度
quiver()関数を使用すると、矢印の枢軸点と表示頻度をカスタマイズすることもできます。pivotパラメータを'mid'または'tip'に設定し、quiver()に渡される配列をスライスして、n 番目の矢印のみを表示することができます。
fig2, ax2 = plt.subplots()
ax2.set_title("pivot='mid'; every third arrow; units='inches'")
Q = ax2.quiver(X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
pivot='mid', units='inches')
qk = ax2.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
coordinates='figure')
ax2.scatter(X[::3, ::3], Y[::3, ::3], color='r', s=5)
plt.show()
x ビューに応じて矢印をスケーリングする
quiver()関数は、x ビューに応じて矢印をスケーリングすることも可能です。これは、データに応じて異なるスケールで矢印を表示する際に便利です。
fig3, ax3 = plt.subplots()
ax3.set_title("pivot='tip'; scales with x view")
M = np.hypot(U, V)
Q = ax3.quiver(X, Y, U, V, M, units='x', pivot='tip', width=0.022,
scale=1 / 0.15)
qk = ax3.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
coordinates='figure')
ax3.scatter(X, Y, color='0.5', s=1)
plt.show()
まとめ
この実験では、Matplotlib のquiver()とquiverkey()関数のいくつかの高度なオプションについて説明しました。これらのオプションを使用することで、クイバープロットの矢印のカスタマイズが可能で、矢印のスケール、枢軸点、矢印の頻度などを含みます。これらのオプションを使用することで、ユーザーはより情報的で視覚的に魅力的なクイバープロットを作成できます。