graficos graficas graficar coordenadas python image-processing matplotlib

graficas - plot python 3



Matplotlib: ¿Cómo trazar imágenes en lugar de puntos? (1)

Hay dos maneras de hacer esto.

  1. imshow la imagen usando imshow con la extent kwarg establecida en función de la ubicación en la que desea que se encuentre la imagen.
  2. Use una imagen de OffsetImage dentro de un AnnotationBbox .

La primera es la más fácil de entender, pero la segunda tiene una gran ventaja. kEl enfoque del cuadro de anotación permitirá que la imagen permanezca en un tamaño constante a medida que se acerca. Al usar imshow se vinculará el tamaño de la imagen a las coordenadas de datos del trazado.

Aquí hay un ejemplo de la segunda opción:

import numpy as np import matplotlib.pyplot as plt from matplotlib.offsetbox import OffsetImage, AnnotationBbox from matplotlib.cbook import get_sample_data def main(): x = np.linspace(0, 10, 20) y = np.cos(x) image_path = get_sample_data(''ada.png'') fig, ax = plt.subplots() imscatter(x, y, image_path, zoom=0.1, ax=ax) ax.plot(x, y) plt.show() def imscatter(x, y, image, ax=None, zoom=1): if ax is None: ax = plt.gca() try: image = plt.imread(image) except TypeError: # Likely already an array... pass im = OffsetImage(image, zoom=zoom) x, y = np.atleast_1d(x, y) artists = [] for x0, y0 in zip(x, y): ab = AnnotationBbox(im, (x0, y0), xycoords=''data'', frameon=False) artists.append(ax.add_artist(ab)) ax.update_datalim(np.column_stack([x, y])) ax.autoscale() return artists main()

Quiero leer una lista de imágenes en Python / Matplotlib y luego trazar estas imágenes en lugar de otros marcadores (como puntos) en una gráfica. Lo he intentado con ishow pero no lo he logrado, porque no puedo cambiar la imagen a otra posición y escalarla adecuadamente. Tal vez alguien tenga una buena idea:)