2011-09-22 2 views
20

Ho un grafico a linee che desidero stampare usando le frecce anziché le linee. Cioè, la linea tra le successive coppie di punti dovrebbe essere una freccia che va dal primo punto al secondo punto.Grafico a linee con frecce a matrice

Conosco la funzione arrow, ma sembra che facciano solo frecce individuali. Prima di trovare un modo per provare a usarlo per fare un'intera trama, c'è un modo migliore per farlo?

risposta

32

È possibile farlo con quiver, ma è un po 'complicato ottenere gli argomenti della parola chiave correttamente.

import numpy as np 
import matplotlib.pyplot as plt 

x = np.linspace(0, 2*np.pi, 10) 
y = np.sin(x) 

plt.figure() 
plt.quiver(x[:-1], y[:-1], x[1:]-x[:-1], y[1:]-y[:-1], scale_units='xy', angles='xy', scale=1) 

plt.show() 

enter image description here

+0

Se anche voi bisogno di modificare le fette List/Array con le virgole per utilizzare faretra in questo modo, ho trovato questo promemoria a portata di mano: http://structure.usc.edu/numarray/node26. html – thadk