>>> """
===================
Image Slices Viewer
===================
Scroll through 2D image slices of a 3D array.
"""
...
... import numpy as np
... import matplotlib.pyplot as plt
...
...
... # Fixing random state for reproducibility
... np.random.seed(19680801)
...
...
... class IndexTracker:
... 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 on_scroll(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])
... self.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.on_scroll)
... plt.show()
...