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

J'essaie de tracer les 2 vecteurs p et q en 3D. Je reçois toujours ce message d'erreurComment tracer 2 vecteurs en 3D

ValueError: need at least one array to concatenate

Je ne suis pas sûr de ce que je dois faire pour afficher ce graphique.

Répondre

2

quiver est de tracer un champ de vecteur (par exemple, le champ de vitesse).

Vous pouvez utiliser une parcelle à la ligne entre 0 et q (ou p)

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

Vous pouvez utiliser carquois pour ajouter des flèches à la fin des lignes.

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

lorsque j'utilise intrigue la façon dont vous ai-je été ce retour Out [7]: [] Aussi, quand je l'utilise carquois la façon dont vous avez fait Je reçois une erreur de syntaxe Fichier "", ligne 1 ax.quiver (* q, * q) ^ SyntaxError: syntaxe non valide –