私はpyplotを使って大きなベクトルの配列をプロットしようとしています。今私はpos1(t)
、pos2(t)
とvec(t)
フォーム([a,...,z],[a1,...,z1])
のタプルを返す関数です Pythonでベクトルの配列をプロットする(pyplot)
import matplotlib.pyplot as plt
import numpy as np
import operator
t = np.arange(0, np.pi, .01)
def pos1(t):
x1 = .72 * np.cos(13*t)
y1 = .72 * np.sin(13*t)
return x1, y1
def pos2(t):
x2 = np.cos(8*t)
y2 = np.sin(8*t)
return x2, y2
def vec(t):
x1 = pos1(t)[0]
x2 = pos2(t)[0]
y1 = pos1(t)[1]
y2 = pos2(t)[1]
x = np.subtract(x1, x2)
y = np.subtract(y1, y2)
return x, y
X = pos2(t)[0]
Y = pos2(t)[1]
U = vec(t)[0]
V = vec(t)[1]
plot1 = plt.figure()
plt.quiver(X, Y, U, V, headlength=4)
plt.show(plot1)
を持っています。
このプロットは、私が望むものに近いものを与えますが、ベクターの長さはすべて間違っています。 2つの関数pos1(t),pos2(t)
は、特定の曲線上の点のタプルを返します。そして、vec(t)
関数は、その差です。最初の曲線上の点から2番目の曲線上の点までのベクトルにつながります。私のプロットは正しい方向を持っていますが、大きさはありません。
quiver
「pos2」と「vec」が何であるかを教えない限り、私たちはあなたを助けることは不可能です。また、あなたの期待される出力が何であるか教えてください。最後に、スニペットにタイプミスがありますか?それは 'X = pos1(t)'とされていますか? 'pos1'はあなたのスニペットのどこにでも参照されていません。 – Praveen
私は全体を含めるために投稿を編集しました。私が得ようとしている出力は、t1の位置にあったpos1からpos2までのすべての距離ベクトルvec(t)のプロットです。 – Astrum
あなたのコードはあなたのためではなく、あなたが得たいものです。サンプルは異なる出力を生成するためです。私は本当にこののアニメートバージョンをしたい – DJV