2016-11-27 67 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:无效语法 –