.. note::
    :class: sphx-glr-download-link-note

    Click :ref:`here <sphx_glr_download_gallery_ticks_and_spines_tick_labels_from_values.py>` to download the full example code
.. rst-class:: sphx-glr-example-title

.. _sphx_glr_gallery_ticks_and_spines_tick_labels_from_values.py:


=========================================
Setting tick labels from a list of values
=========================================

Using ax.set_xticks causes the tick labels to be set on the currently
chosen ticks. However, you may want to allow matplotlib to dynamically
choose the number of ticks and their spacing.

In this case it may be better to determine the tick label from the
value at the tick. The following example shows how to do this.

NB: The MaxNLocator is used here to ensure that the tick values
take integer values.





.. image:: /gallery/ticks_and_spines/images/sphx_glr_tick_labels_from_values_001.png
    :class: sphx-glr-single-img





.. code-block:: python


    import matplotlib.pyplot as plt
    from matplotlib.ticker import FuncFormatter, MaxNLocator
    fig, ax = plt.subplots()
    xs = range(26)
    ys = range(26)
    labels = list('abcdefghijklmnopqrstuvwxyz')


    def format_fn(tick_val, tick_pos):
        if int(tick_val) in xs:
            return labels[int(tick_val)]
        else:
            return ''


    ax.xaxis.set_major_formatter(FuncFormatter(format_fn))
    ax.xaxis.set_major_locator(MaxNLocator(integer=True))
    ax.plot(xs, ys)
    plt.show()


.. _sphx_glr_download_gallery_ticks_and_spines_tick_labels_from_values.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



  .. container:: sphx-glr-download

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



  .. container:: sphx-glr-download

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


.. only:: html

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

    Keywords: matplotlib code example, codex, python plot, pyplot
    `Gallery generated by Sphinx-Gallery
    <https://sphinx-gallery.readthedocs.io>`_
