0
私は、方向性を持つベクトルを、quiverを使って、python 2.7でカラーマップしようとしています。テキストファイルからデータを読み込み、各ベクトルの角度を取得し、すべてが[0,1]の間に収まるように正規化します。しかし、色をプロットすると、同じ色が2つの異なる方向を示すことがわかります。パイロットでベクトル方向にカラーマップを使用する
また、データをメッシュ上にプロットするのではなく、速度ベクトルを持つ点としてプロットすることが適切かもしれません。ここに私のコード:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as col
import sys
data = np.loadtxt("" + str(sys.argv[1]) + "")
x_dat = data[:,0]
y_dat = data[:,1]
vx_dat = data[:,2]
vy_dat = data[:,3]
rad = np.arctan(vy_dat/vx_dat) * 2
theta = np.degrees(rad)
for i in range(len(theta)):
if theta[i] < 0:
theta[i] += 360
theta[i] /= 360
私は度に変換する必要はありません実現します。それから私は私のベクトルを正規化:
N = np.array([])
for i in range(len(vx_dat)):
N = np.append(N,np.sqrt(vx_dat[i]**2 + vy_dat[i]**2))
vx_dat[i] = vx_dat[i]/N[i]
vy_dat[i] = vy_dat[i]/N[i]
そして最後に、私はそれをプロットします
「シータは」方向に基づいて、各ベクトルの色をマッピングする必要がありq = plt.quiver(x_dat, y_dat, vx_dat, vy_dat, theta, units='dots', angles='xy', cmap = 'Blues')
。しかし、ここで(参照しやすくなると思いますので、私はズームアップ)私は何を得るのです。
各方向は ユニークの色を取得するように、私はこの問題を解決するにはどうすればよい?
周期的なPiによるtan関数。したがって、同じ色(お互いに反対のもの)を共有する円全体の中で正確に2つの方向を得ることができます。何が必要なの[上記Arctan2機能](https://en.wikipedia.org/wiki/Atan2)で、([ 'numpy.arctan2'](https://docs.scipy.org/doc/numpy/reference/生成された/ numpy.arctan2.html)完全な円の上にユニークな角度を与えます。 – ImportanceOfBeingErnest
ありがとうございました!私の愚かな見落とし。 –