title: How to plot a 3D patch collection in matplotlib?
body: <p>I'm trying to make a 3D plot in matplotlib with three circles on it, each centered at the origin and with a radius of 1, pointing in different directions - to illustrate a sphere of radius 1, for example.</p>
  
  <p>In 2D I would make a circle patch collection and add it to the axes. In 3D I'm having trouble getting the patches to show up at all, let alone orient them in different directions.</p>
  
  <pre><code>import matplotlib
  import matplotlib.pyplot as P
  import mpl_toolkits.mplot3d as M3
  
  fig = P.figure()
  ax = fig.add_subplot(1, 1, 1, projection='3d')
  circles = matplotlib.collections.PatchCollection(
      [matplotlib.patches.Circle((0, 0), 1) for count in range(3)],
      offsets=(0, 0))
  M3.art3d.patch_collection_2d_to_3d(circles, zs=[0], zdir='z')
  ax.add_collection(circles)
  P.show()
  </code></pre>
  
  <p>Running this program fills the entire plot window with blue, i.e. the face color of the patches, no matter how I rotate the plot. If I set <code>facecolor='none'</code> in the <code>PatchCollection()</code> call, then an empty <code>Axes3D</code> shows up.</p>
  
  <p>Things I've tried:</p>
  
  <p><ul>
  <li>If I use a <code>CircleCollection</code> instead of a <code>PatchCollection</code>, no patches show up at all.</li>
  <li><p>The <code>zs</code> parameter in the <code>patch_collection_2d_to_3d()</code> call is odd; I would expect to put either <code>zs=0</code> (one z-coordinate for all three patches) or <code>zs=[0,0,0]</code> (a separate z-coordinate for each patch), but both of those throw an error:</p></p>
  
  <blockquote>
    <p>ValueError: setting an array element with a sequence.</p>
  </blockquote></li>
  <li><p>To orient the patches differently, I would expect to be able to pass something like <code>zdir=['x', 'y', 'z']</code> but the results are no different whether I pass that or <code>'z'</code> or <code>['z']</code>.</p></li>
  <li>I would also have expected to be able to do <code>ax.add_collection3d(circles, zs=[0, 0, 0], zdir=['x', 'y', 'z'])</code> instead of converting the patch collection from 2d to 3d, but that throws an error too:
  
  <blockquote>
    <p>AttributeError: 'Patch3DCollection' object has no attribute 'set_sort_zpos'</li>
    </ul></p>
  </blockquote>