缩放窗口#

此示例演示如何在窗口中连接事件,例如鼠标按下,到另一个图形窗口。

如果您在第一个窗口中单击一个点,则第二个窗口的 z 和 y 限制将进行调整,以便第二个窗口中缩放的中心为单击点的 (x, y) 坐标。

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

注意

此示例演示了 Matplotlib 的交互功能,这些功能不会出现在静态文档中。请在您的计算机上运行此代码以查看交互性。

您可以复制粘贴单个部分,也可以使用页面底部的链接下载整个示例。

  • Click to zoom
  • Zoom window
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()

Sphinx-Gallery 生成的图库