title: Matplotlib/Tkinter bug: exception when comparing collection3d objects
body: <p>I'm getting a strange exception raised by a Matplotlib window's Tkinter callback. Context: I'm running Python 3.2 in a QTconsole IPython window, in pylab mode. The problem I'm coding involves 3D plotting over triangular regions.</p>
  
  <p>(I apologize if the code snippet is rather long; I found the bug difficult to reproduce.)</p>
  
  <pre><code>from mpl_toolkits.mplot3d import Axes3D
  A,B,C,D = array([[0,0],[1,0],[1/2,1],[3/2,1]])
  f1 = lambda x,y: NaN if x==y==0 else (y - 2*x)*sin(1/(x**2+y**2))
  f2 = lambda x,y: NaN if x==y==0 else (y-2*x+2)*cos(1/(x**2+y**2))
  (U,V) = meshgrid(linspace(0,1),linspace(0,1))
  
  fig = figure(1)
  ax = fig.add_subplot(111,projection = '3d')
  
  (X1,Y1) = vectorize(lambda u,v: tuple(A + u*(B-A) + u*v*(C-B)), otypes = [float,float])(U,V)
  (X2,Y2) = vectorize(lambda u,v: tuple(D + u*(C-D) + u*v*(B-C)), otypes = [float,float])(U,V)
  Z11 = vectorize(f1)(X1,Y1)
  Z21 = vectorize(f2)(X1,Y1)
  Z12 = vectorize(f1)(X2,Y2)
  Z22 = vectorize(f2)(X2,Y2)
  
  ax.plot_wireframe(X1,Y1,Z11)
  ax.plot_wireframe(X1,Y1,Z21)
  ax.plot_wireframe(X2,Y2,Z12)
  ax.plot_wireframe(X2,Y2,Z22)
  show()
  </code></pre>
  
  <p>Once all these patches are drawn, a mouse-click in the figure window produces the following:</p>
  
  <pre><code>Exception in Tkinter callback
  Traceback (most recent call last):
    File "C:\Python32\lib\tkinter\__init__.py", line 1399, in __call__
      return self.func(*args)
  [snip]
    File "C:\Python32\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 191, in draw
      zlist.sort()
  TypeError: unorderable types: Line3DCollection() &lt; Line3DCollection()
  Exception in Tkinter callback
  </code></pre>
  
  <p>Since this is a Tkinter-raised exception, I can't catch it in PDB and analyze it. (In particular, there are a lot of unnamed arguments passed to the intermediate methods in the stack trace that make it impossible to follow it down by hand.) I have been able to figure out that, indeed, the Axes3D instance is trying to sort its list of Line3DCollection objects and running up against an un-implemented comparison method.</p>
  
  <p>My question is: is this a bug that Matplotlib needs to be made aware of, or am I making some kind of basic user mistake? (As mentioned, the bug is finicky; it doesn't always show up, especially if I parametrize the triangles in different ways.)</p>