title: Putting arrowheads on vectors in matplotlib's 3d plot
body: <p>I plotted the eigenvectors of some 3D-data and was wondering if there is currently (already) a way to put arrowheads on the lines? Would be awesome if someone has a tip for me. <img src="https://i.stack.imgur.com/HebRd.png" alt="enter image description here"> </p>
  
  <pre><code>import numpy as np
  from matplotlib import pyplot as plt
  from mpl_toolkits.mplot3d import Axes3D
  
  ####################################################
  # This part is just for reference if
  # you are interested where the data is
  # coming from
  # The plot is at the bottom
  #####################################################
  
  # Generate some example data
  mu_vec1 = np.array([0,0,0])
  cov_mat1 = np.array([[1,0,0],[0,1,0],[0,0,1]])
  class1_sample = np.random.multivariate_normal(mu_vec1, cov_mat1, 20)
  
  mu_vec2 = np.array([1,1,1])
  cov_mat2 = np.array([[1,0,0],[0,1,0],[0,0,1]])
  class2_sample = np.random.multivariate_normal(mu_vec2, cov_mat2, 20)
  
  # concatenate data for PCA
  samples = np.concatenate((class1_sample, class2_sample), axis=0)
  
  # mean values
  mean_x = mean(samples[:,0])
  mean_y = mean(samples[:,1])
  mean_z = mean(samples[:,2])
  
  #eigenvectors and eigenvalues
  eig_val, eig_vec = np.linalg.eig(cov_mat)
  
  ################################
  #plotting eigenvectors
  ################################    
  
  fig = plt.figure(figsize=(15,15))
  ax = fig.add_subplot(111, projection='3d')
  
  ax.plot(samples[:,0], samples[:,1], samples[:,2], 'o', markersize=10, color='green', alpha=0.2)
  ax.plot([mean_x], [mean_y], [mean_z], 'o', markersize=10, color='red', alpha=0.5)
  for v in eig_vec:
      ax.plot([mean_x, v[0]], [mean_y, v[1]], [mean_z, v[2]], color='red', alpha=0.8, lw=3)
  ax.set_xlabel('x_values')
  ax.set_ylabel('y_values')
  ax.set_zlabel('z_values')
  
  plt.title('Eigenvectors')
  
  plt.draw()
  plt.show()
  </code></pre>