title: Plot 3D contourf based on given 3D array
body: <p>I have a <code>(2640, 96, 17)</code> array. I am able to plot it by scatter plot but I would like to see the whole shape of this array, so I think the surface plot or contour will be better. But I cannot deal with <code>z must be 2D array</code>. <code>z.ndim</code> shows 2. I don't know what is going on. Or anyone could provide a new method for me, I will be highly appreciated.</p>
  <pre><code>x = np.arange(Outfinal_add.shape[0])[:, None, None]
  y = np.arange(Outfinal_add.shape[1])[None, 30:60, None]
  x, y= np.broadcast_arrays(x, y)
  Z = np.zeros((Outfinal_add.shape[1],Outfinal_add.shape[2]))
  Z = Outfinal_add[1][:]
  fig = plt.figure()
  ax = fig.gca(projection='3d')
  ax.contourf(x.ravel(),
             y.ravel(),
             Z.ravel())
  </code></pre>
  <p><code>Outfinal_add</code> is the original data array <code>(2640,96,17)</code>.</p>