title: How to obscure a line behind a surface plot in matplotlib?
body: <p>I want to plot data using Matplotlib via a colormap on the surface of a sphere. Additionally, I would like to add a 3D line plot. The code I have so far is this:</p>
  
  <pre><code>import matplotlib
  import matplotlib.pyplot as plt
  from mpl_toolkits.mplot3d import Axes3D
  import numpy as np
  
  
  NPoints_Phi         = 30
  NPoints_Theta       = 30
  
  radius              = 1
  pi                  = np.pi
  cos                 = np.cos
  sin                 = np.sin
  
  phi_array           = ((np.linspace(0, 1, NPoints_Phi))**1) * 2*pi
  theta_array         = (np.linspace(0, 1, NPoints_Theta) **1) * pi
  
  
  phi, theta          = np.meshgrid(phi_array, theta_array) 
  
  
  x_coord             = radius*sin(theta)*cos(phi)
  y_coord             = radius*sin(theta)*sin(phi)
  z_coord             = radius*cos(theta)
  
  
  #Make colormap the fourth dimension
  color_dimension     = x_coord 
  minn, maxx          = color_dimension.min(), color_dimension.max()
  norm                = matplotlib.colors.Normalize(minn, maxx)
  m                   = plt.cm.ScalarMappable(norm=norm, cmap='jet')
  m.set_array([])
  fcolors             = m.to_rgba(color_dimension)
  
  
  
  theta2              = np.linspace(-np.pi,  0, 1000)
  phi2                = np.linspace( 0 ,  5 * 2*np.pi , 1000)
  
  
  x_coord_2           = radius * np.sin(theta2) * np.cos(phi2)
  y_coord_2           = radius * np.sin(theta2) * np.sin(phi2)
  z_coord_2           = radius * np.cos(theta2)
  
  # plot
  fig                 = plt.figure()
  
  ax                  = fig.gca(projection='3d')
  ax.plot(x_coord_2, y_coord_2, z_coord_2,'k|-', linewidth=1 )
  ax.plot_surface(x_coord,y_coord,z_coord, rstride=1, cstride=1, facecolors=fcolors, vmin=minn, vmax=maxx, shade=False)
  fig.show()
  </code></pre>
  
  <p>This code produces an image that looks like this: <a href="https://i.stack.imgur.com/medST.png" rel="noreferrer"><img src="https://i.stack.imgur.com/medST.png" alt="this"></a> which is ALMOST what I want. However, the black line should be obscured by the surface plot when it is in the background and visible when it is in the foreground. In other words, the black line should not "shine through" the sphere. </p>
  
  <p>Can this be done in Matplotlib and without the use of Mayavi?</p>