2016-11-27 66 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() 

我試圖在3D中繪製2個矢量p和q。我不斷收到此錯誤消息如何在3D中繪製2個矢量

ValueError: need at least one array to concatenate

不知道我需要做什麼才能讓此圖顯示。

回答

2

quiver用於繪製矢量場(例如速度場)。

可以使用情節0和q(或P)之間繪製線

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

可以使用顫動於在線路末端添加箭頭。

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

當我用情節的方式你是我得到這個回 出[7]: [] 此外,當我用顫抖你的方式我收到語法錯誤 文件「」,第1行 ax.quiver(* q,* q) ^ SyntaxError:無效語法 –