缩放窗口

此示例显示如何将一个窗口(例如鼠标按键)中的事件连接到另一个体形窗口。

如果单击第一个窗口中的某个点,将调整第二个窗口的z和y限制,以便第二个窗口中缩放的中心将是所单击点的x,y坐标。

请注意,散点图中圆的直径以点**2定义,因此它们的大小与缩放无关。

缩放窗口示例

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. figsrc, axsrc = plt.subplots()
  4. figzoom, axzoom = plt.subplots()
  5. axsrc.set(xlim=(0, 1), ylim=(0, 1), autoscale_on=False,
  6. title='Click to zoom')
  7. axzoom.set(xlim=(0.45, 0.55), ylim=(0.4, 0.6), autoscale_on=False,
  8. title='Zoom window')
  9. x, y, s, c = np.random.rand(4, 200)
  10. s *= 200
  11. axsrc.scatter(x, y, s, c)
  12. axzoom.scatter(x, y, s, c)
  13. def onpress(event):
  14. if event.button != 1:
  15. return
  16. x, y = event.xdata, event.ydata
  17. axzoom.set_xlim(x - 0.1, x + 0.1)
  18. axzoom.set_ylim(y - 0.1, y + 0.1)
  19. figzoom.canvas.draw()
  20. figsrc.canvas.mpl_connect('button_press_event', onpress)
  21. plt.show()

下载这个示例