和往常一样
因此
import matplotlib.pyplot as plt
import numpy as np
class Test:
def __init__(self):
self.fig = plt.figure(1)
# Axis with large plot
self.ax_large = plt.subplot(121)
self.ax_large.imshow(np.random.random((5000,5000)))
# Follow the point
self.ax = plt.subplot(122)
self.ax.grid(True)
# set some limits to the axes
self.ax.set_xlim(-5,5)
self.ax.set_ylim(-5,5)
# Draw the canvas once
self.fig.canvas.draw()
# Store the background for later
self.background = self.fig.canvas.copy_from_b@R_607_2419@(self.ax.b@R_607_2419@)
# Now create some point
self.point, = self.ax.plot(0,0, 'go')
# Create callback to mouse movement
self.cid = self.fig.canvas.callbacks.connect('motion_notify_event',
self.callback)
plt.show()
def callback(self, event):
if event.inaxes == self.ax:
# Update point's location
self.point.set_data(event.xdata, event.ydata)
# Restore the background
self.fig.canvas.restore_region(self.background)
# draw the point on the screen
self.ax.draw_artist(self.point)
# blit the axes
self.fig.canvas.blit(self.ax.b@R_607_2419@)
tt = test()