¿Matplotlib imshow offset to match axis?

Estoy trazando un montón de coordenadas UTM utilizando un matplotlib.pyplot.scatter. También tengo una foto aérea de fondo que sé que coincide exactamente con la extensión de la figura. Cuando grafico mis datos y configuro el eje, puedo mostrar la dispersión correctamente. Si grafico la foto aérea utilizando imshow, usa el número de píxeles como la ubicación del eje. Necesito cambiar la imagen (matriz numpy) a su posición UTM correcta. ¿Algunas ideas? Soy bastante nuevo en matplotlib y numpy.

Por ejemplo: Sé que la esquina superior izquierda de la imagen (coordenada imshow: 0,0) tiene la coordenada UTM (269658.4, 538318.2). ¿Cómo le digo a imshow lo mismo?

También debo decir que investigué el mapa base pero aún no parece ser totalmente compatible con UTM. Mi área de estudio es muy pequeña.

Necesitas usar el argumento de la palabra clave de extent para hacer una presentación.

Como un ejemplo rápido:

 import numpy as np import matplotlib.pyplot as plt # Random points between 50000 and 51000 x, y = 1000 * np.random.random((2, 10)) + 50000 # A 10x10 "image"... image = np.arange(100).reshape((10,10)) # In a lot of cases, image data will be "flipped" vertically, so you may need # use the `origin` kwarg, as well (or just swap the ymin and ymax ordering). plt.imshow(image, extent=[x.min(), x.max(), y.min(), y.max()]) plt.plot(x, y, 'ro') plt.show() 

introduzca la descripción de la imagen aquí