2016-11-27 23 views
1
import numpy as np 
import matplotlib 
matplotlib.rcParams['backend'] = "Qt4Agg" 
import matplotlib.pyplot as plt 
import seaborn as sns 
from mpl_toolkits.mplot3d import Axes3D 


fig = plt.figure() 
ax = fig.gca(projection='3d') 

%matplotlib inline 
p=np.array([1,-3,5]) 
q=np.array([3,2,6]) 
ax.quiver(p,q) 
ax.legend() 

plt.show() 

私は2つのベクトルpとqを3Dでプロットしようとしています。このエラーメッセージが表示され続けます3Dで2つのベクトルをプロットする方法

ValueError: need at least one array to concatenate

このプロットを表示するには、何が必要なのかよくわかりません。

答えて

2

quiverは、ベクトルフィールド(たとえば、速度フィールド)をプロットするためのものです。

あなたは

ax.plot(*np.vstack([[0,0,0],p]).T) 
ax.plot(*np.vstack([[0,0,0],q]).T) 

あなたは線の端にある矢印を追加するために震え使用できる0及びQ(又はP)との間に線をプロットするプロットを使用することができます。

ax.quiver(*q,*q) 
ax.quiver(*p,*p) 
+0

私はプロットを使用するときに行った方法は、私はこれを取り戻す アウト[7]: [<0xa235940でmpl_toolkits.mplot3d.art3d.Line3D>] また、私はあなたがやった方法を震え使用構文エラーが発生する ファイル ""、行1 ax.quiver(* q、* q) ^ SyntaxError:無効な構文 –

関連する問題