デカルト平面でのベクトルのプロットに関するアドバイスを探しています。タスクは、ポイント (座標) をプロットし、それらを矢印でソース ポイント (0,0 など) にリンクすることです。下の画像はアイデアを与えるはずです。色や名前のベクトル/ポイントは気にしません。座標平面に矢印をプロットするだけです。線形代数ベクトルと演算をプロットするためのライブラリがR(またはpython)に存在すると確信しています。
任意のポインタをいただければ幸いです!

(ソース: mathinsight.org )
デカルト平面でのベクトルのプロットに関するアドバイスを探しています。タスクは、ポイント (座標) をプロットし、それらを矢印でソース ポイント (0,0 など) にリンクすることです。下の画像はアイデアを与えるはずです。色や名前のベクトル/ポイントは気にしません。座標平面に矢印をプロットするだけです。線形代数ベクトルと演算をプロットするためのライブラリがR(またはpython)に存在すると確信しています。
任意のポインタをいただければ幸いです!

(ソース: mathinsight.org )
arrowsまたは、R で関数を使用することもできます。
plot(c(0,1),c(0,1))
arrows(0,0,1,1)
plot(NA, xlim=c(0,5), ylim=c(0,5), xlab="X", ylab="Y")
vecs <- data.frame(vname=c("a","b","a+b", "transb"),
x0=c(0,0,0,2),y0=c(0,0,0,1), x1=c(2,1,3,3) ,y1=c(1,2,3,3),
col=1:4)
with( vecs, mapply("arrows", x0, y0, x1,y1,col=col) )
呼び出しに lwd=3 を追加すると、見た目が少し良くなりarrowsます。このtext関数はラベル付けを可能にし、'srt' パラメータで回転させることができます。
plot(NA, xlim=c(0,5), ylim=c(0,5), xlab="X", ylab="Y", lwd=3)
with( vecs, mapply("arrows", x0, y0, x1,y1,col=col,lwd=3) )
with(vecs, mapply('text', x=x1[1:3]-.1, y=y1[1:3]+.1,
labels=expression(list(a[1],a[2]), list(b[1],b[2]), list(a[1]+b[1],a[2]+b[2]) ) ))

list呼び出し内の関数expressionは plotmathlist呼び出しであり、通常の Rlistとは異なり、 plotmath-が regularpasteとは異なることに注意してくださいpaste。親フレームでその引数を評価しようとはしません。そのためには、「内部」表現を処理するために使用する必要があるbquoteかsubstitute、おそらく使用する必要があります。sapply
いくつかのランダムなマグニチュード 2 ベクトルを描画する Easy(TM) 方法。最初にユークリッド ノルムを計算します。そうしないと、アロー関数がポイントからポイントへと矢印をプロットして三角形を作成します。残りは簡単です:
#first some vectors
v1<-c(-3,5)
v2<-c(2,-10)
v3 <-c(0,-3)
v4 <- c(2,5)
# This one for the coordinates of the plot
ax<-c(-10,10)
# I will need the euclidean norm (two-norm) of the vectors:
mag <- function(x) sqrt(sum(x^2))
# I call plot to set up the "canvas"
plot(ax,ax,main="Test")
# I do the stuffz, the FIRST pair of params is the ORIGIN
arrows(0,0, mag(v1),mag(v2),lwd=4,col="red")
arrows(-2,1, mag(v3),mag(v4),lwd=4,col="blue")
最も明白な行動方針matplotlibは、多くのプロット機能を備えたpythonのパッケージを使用することです。
具体的には、この例をリバースエンジニアリングしたいとします。
より芸術的でデカルトの少ない方法で素晴らしい結果を得る別の方法は、を使用してSVGを作成およびレンダリングすることrsvgです。私はそれを試したことがありませんが、SVGは矢印をネイティブにサポートしているはずです。また、SVGファイルは、必要に応じてInkscapeなどの描画プログラムで編集できます。