Dibuje una superficie 3d de una ‘lista de listas’ usando matplotlib

Busqué un poco por todas partes, y aunque puedo encontrar muchos ejemplos útiles de meshgrid, ninguno de ellos muestra claramente cómo puedo obtener los datos de mi lista de listas en una forma aceptable para cualquiera de las diversas formas en que he hablado.

Estoy un poco perdido cuando se trata de numpy / matplotlib y las terminologías y secuencias de pasos que he visto sugeridas.

Lo más cercano que encontré fue Trazar una superficie 3d de una lista de tuplas en matplotlib

Tengo una lista de listas de datos de altura.

data=[[h1,h2,h3,h...], [h,h,h,h], [h,h,h,h], [h,h,h,h16]] data[0][1]==h2 data[4][4]==h16 

¿Cómo produzco una gráfica de superficie simple en 3D de estos valores utilizando matplotlib / numpy, etc.? al igual que un mapa de colores con los valores de color como valores de z. Puedo usar imshow () bien, ya que toma una lista de listas directamente. Simplemente no estoy seguro de cómo debo dividir lo que tengo en algo con lo que plot_surface puede estar de acuerdo.

    Si quieres una superficie 3D, tienes que generar coordenadas x e y. Si no le importa lo que son y solo quiere la superficie, genere una malla de enteros en la longitud dada:

     import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D data = np.array(data) length = data.shape[0] width = data.shape[1] x, y = np.meshgrid(np.arange(length), np.arange(width)) fig = plt.figure() ax = fig.add_subplot(1,1,1, projection='3d') ax.plot_surface(x, y, data) plt.show() 

    consulte http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html y http://nbviewer.ipython.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb para mayor información