title: surface plots in matplotlib
body: <p>I have a list of 3-tuples representing a set of points in 3D space. I want to plot a surface that covers all these points.</p>
  
  <p>The <code>plot_surface</code> function in the <code>mplot3d</code> package requires as arguments X,Y and Z to be 2d arrays. Is <code>plot_surface</code> the right function to plot surface and how do I transform my data into the required format?</p>
  
  <pre><code>data = [(x1,y1,z1),(x2,y2,z2),.....,(xn,yn,zn)]
  </code></pre>