毎回位置を反映するタプルのリストがあり、必要なのは、このベクトルを速度の等高線として表示するグラフィック(別のリスト)を用意することだけです。どのように私はそれをするべきですか?
例えば:
import matplotlib.pyplot as plt
import numpy as np
position = [(12,14), (12.22,13.22), (15, 17)]
velocity = [4.55,2.13,5]
毎回位置を反映するタプルのリストがあり、必要なのは、このベクトルを速度の等高線として表示するグラフィック(別のリスト)を用意することだけです。どのように私はそれをするべきですか?
例えば:
import matplotlib.pyplot as plt
import numpy as np
position = [(12,14), (12.22,13.22), (15, 17)]
velocity = [4.55,2.13,5]
griddata()を使用して、散布点をグリッドデータに変換します。例を次に示します。
import numpy as np
from scipy.interpolate import griddata
import matplotlib.pyplot as plt
np.random.seed(0)
x = np.random.normal(size=200)
y = np.random.normal(size=200)
v = np.sqrt(x**2+y**2)
xg, yg = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
vg = griddata((x, y), v, (xg, yg), method='cubic')
plt.contourf(xg, yg, vg)
plt.scatter(x, y, c=v)
plt.show()
出力は次のとおりです。
各ポイントでの速度をプロットする場合は、を試してくださいquiver
。方向フィールド(矢印)プロットを作成します。速度はベクトル量であるため、x
とy
成分の両方があります。
import pylab as plt
x=[12, 13, 14, 15, 16] # x-axis coordinates
y=[14, 15, 16, 17, 18] # y-axis coordinates
v_x=[6, 6, 6, 6, 6] # x-component of velocity
v_y=[1,4,3,2,1] # y-component of velocity
plt.quiver(x,y,v_x,v_y)
plt.xlim(11,17)
plt.ylim(13,19)
plt.show()
について詳しく知りたい場合は、こちらをご覧くださいquiver
。
対照的に、contour
は、ある変数が一定の値を持つ曲線です。詳細については、こちらをご覧ください。