.. _sphx_glr_gallery_event_handling_image_slices_viewer.py: =================== Image Slices Viewer =================== Scroll through 2D image slices of a 3D array. .. image:: /gallery/event_handling/images/sphx_glr_image_slices_viewer_001.png :align: center .. code-block:: python from __future__ import print_function 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() .. only :: html .. container:: sphx-glr-footer .. container:: sphx-glr-download :download:`Download Python source code: image_slices_viewer.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: image_slices_viewer.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_