title: How do I fix " ValueError: Argument Z must be 2-dimensional" error
body: <p>I'm trying to plot a 3d surface passes through a set of (X,Y,Z) 3d point and I got raise ValueError("Argument Z must be 2-dimensional.")</p>
  
  <pre><code>ax = Axes3D(fig)
  X = df.index.values
  
  
  Y = np.where(df['trans_count'].values&gt;0,np.ma.log(df['trans_count'].values), 0)
  
  X, Y = np.meshgrid(X, Y)
  
  
  Z = np.where(df['gpu_trans_count'].values&gt;0, np.log(df['gpu_trans_count'].values), 0)
  
  print(X.shape) #(37,37)
  print(Y.shape) #(37,37)
  print(Z.shape) #(37,)
  
  
  ax.plot_surface(X, Y, Z)
  </code></pre>
  
  <h1>ValueError: Argument Z must be 2-dimensional</h1>