title: Drawing phase space trajectories with arrows in matplotlib
body: <p>I am trying to draw the phase space plot for a certain dynamical system. In effect, I have a 2d plane in which there is a starting point followed by next point and so on. I want to connect these points with lines and on top of that I want to draw some arrows so that I would be able to see the direction (starting point to the next point etc). I decided to use linetype <code>'-&gt;'</code> to achieve this but it doesn't give any good result and arrows actually seem to point in wrong direction many times. Also they are quite closely spaced and hence I can't see the individual lines. </p>
  
  <p>My code is given below:</p>
  
  <pre><code>import numpy as np
  import matplotlib.pylab as plt
  from scipy.integrate import odeint
  
  def system(vect, t):
      x, y = vect
      return [x - y - x * (x**2 + 5 * y**2), x + y - y * (x**2 + y**2)]
  
  vect0 = [(-2 + 4*np.random.random(), -2 + 4*np.random.random()) for i in range(5)]
  t = np.linspace(0, 100, 1000)
  
  for v in vect0:
      sol = odeint(system, v, t)
      plt.plot(sol[:, 0], sol[:, 1], '-&gt;')
  
  plt.show()
  </code></pre>
  
  <p>The resulting plot is shown below:
  <a href="https://i.stack.imgur.com/hsg0Q.png" rel="noreferrer"><img src="https://i.stack.imgur.com/hsg0Q.png" alt="Phase plot"></a></p>
  
  <p>As can be seen, the arrows are not properly aligned to the lines that connect the points. Also, many arrows are "going out" and I want them to "come in" because the next point always lies towards the close loop at the middle. Moreover, plot looks too messy and I would like to plot fewer arrows so that plot would look better. Does anybody have any idea as how to do it? Thanks in advance. </p>