code: def fault_and_striae_plot(ax, strikes, dips, rakes):
      
      # Plot the planes
      lines = ax.plane(strikes, dips, 'k-', lw=0.5)
  
      # Calculate the position of the rake of the lineations, but don't plot yet
      x, y = mplstereonet.rake(strikes, dips, rakes)
  
      # Calculate the direction the arrows should point
      # These are all normal faults, so the arrows point away from the center
      # For thrusts, it would just be u, v = -x/mag, -y/mag
      mag = np.hypot(x, y)
      u, v = x / mag, y / mag
  
      # Plot the arrows at the rake locations...
      arrows = ax.quiver(x, y, u, v, width=1, headwidth=4, units='dots')
      return lines, arrows
docs: Makes a fault-and-striae plot (a.k.a. "Ball of String") for normal faults
      with the given strikes, dips, and rakes.