Ampliar ventana #

Este ejemplo muestra cómo conectar eventos en una ventana, por ejemplo, una pulsación del mouse, a otra ventana de figura.

Si hace clic en un punto en la primera ventana, los límites z e y de la segunda se ajustarán para que el centro del zoom en la segunda ventana sean las coordenadas (x, y) del punto en el que se hizo clic.

Tenga en cuenta que el diámetro de los círculos en la dispersión se define en puntos**2, por lo que su tamaño es independiente del zoom.

Nota

Este ejemplo ejercita las capacidades interactivas de Matplotlib, y esto no aparecerá en la documentación estática. Ejecute este código en su máquina para ver la interactividad.

Puede copiar y pegar partes individuales o descargar el ejemplo completo usando el enlace en la parte inferior de la página.

  • Haga clic para ampliar
  • Ampliar ventana
import matplotlib.pyplot as plt
import numpy as np


# Fixing random state for reproducibility
np.random.seed(19680801)

figsrc, axsrc = plt.subplots(figsize=(3.7, 3.7))
figzoom, axzoom = plt.subplots(figsize=(3.7, 3.7))
axsrc.set(xlim=(0, 1), ylim=(0, 1), autoscale_on=False,
          title='Click to zoom')
axzoom.set(xlim=(0.45, 0.55), ylim=(0.4, 0.6), autoscale_on=False,
           title='Zoom window')

x, y, s, c = np.random.rand(4, 200)
s *= 200

axsrc.scatter(x, y, s, c)
axzoom.scatter(x, y, s, c)


def on_press(event):
    if event.button != 1:
        return
    x, y = event.xdata, event.ydata
    axzoom.set_xlim(x - 0.1, x + 0.1)
    axzoom.set_ylim(y - 0.1, y + 0.1)
    figzoom.canvas.draw()

figsrc.canvas.mpl_connect('button_press_event', on_press)
plt.show()

Galería generada por Sphinx-Gallery