

.. _sphx_glr_gallery_animation_image_slices_viewer.py:


===================
Image Slices Viewer
===================





.. image:: /gallery/animation/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()

**Total running time of the script:** ( 0 minutes  0.084 seconds)



.. container:: sphx-glr-footer


  .. container:: sphx-glr-download

     :download:`Download Python source code: image_slices_viewer.py <image_slices_viewer.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: image_slices_viewer.ipynb <image_slices_viewer.ipynb>`

.. rst-class:: sphx-glr-signature

    `Generated by Sphinx-Gallery <https://sphinx-gallery.readthedocs.io>`_
