title: matplotlib 3D surface plot
body: <p>Trying to create a 3D surface plot of a plane with jupyter notebook.  However, this code is giving me a strange error: </p>
  
  <pre><code># ValueError: Argument Z must be 2-dimensional.
  
  %matplotlib
  from mpl_toolkits.mplot3d import Axes3D
  import matplotlib.pyplot as plt
  import numpy as np
  
  fig = plt.figure()
  plt.clf()
  ax = Axes3D(fig)
  
  x=np.arange(-4,4,1)
  y=np.arange(-4,4,1)
  
  X = []
  Y = []
  Z = []
  
  for ix in range(0, len(x)):
      for iy in range(0, len(y)):
          z = 2*x[ix] + 3*y[iy]
          Z.append(z)
          X.append(x[ix])
          Y.append(y[iy])
  
  ax.plot_surface(X, Y, Z)
  
  plt.show()
  </code></pre>