1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import numpy as np import matplotlib.pyplot as plt
class IndexTracker(object): def __init__(self, ax, X): self.ax = ax ax.set_title('use scroll wheel to navigate images')
self.X = X rows, cols, self.slices = X.shape self.ind = self.slices//2
self.im = ax.imshow(self.X[:, :, self.ind]) self.update()
def onscroll(self, event): print("%s %s" % (event.button, event.step)) if event.button == 'up': self.ind = (self.ind + 1) % self.slices else: self.ind = (self.ind - 1) % self.slices self.update()
def update(self): self.im.set_data(self.X[:, :, self.ind]) ax.set_ylabel('slice %s' % self.ind) self.im.axes.figure.canvas.draw()
fig, ax = plt.subplots(1, 1)
X = np.random.rand(20, 20, 40)
tracker = IndexTracker(ax, X)
fig.canvas.mpl_connect('scroll_event', tracker.onscroll) plt.show()
|