0

毎回位置を反映するタプルのリストがあり、必要なのは、このベクトルを速度の等高線として表示するグラフィック(別のリスト)を用意することだけです。どのように私はそれをするべきですか?

例えば:

import matplotlib.pyplot as plt
import numpy as np
position = [(12,14), (12.22,13.22), (15, 17)]
velocity = [4.55,2.13,5]
4

2 に答える 2

2

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()

出力は次のとおりです。

ここに画像の説明を入力してください

于 2012-07-19T08:05:31.683 に答える
1

各ポイントでの速度をプロットする場合は、を試してくださいquiver。方向フィールド(矢印)プロットを作成します。速度はベクトル量であるため、xy成分の両方があります。

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は、ある変数が一定の値を持つ曲線です。詳細については、こちらをご覧ください。

于 2012-07-19T07:07:42.280 に答える