matplotlib 3.5.1

>>> """
===================
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()
...