.. only:: html
.. note::
:class: sphx-glr-download-link-note
Click :ref:`here ` to download the full example code
.. rst-class:: sphx-glr-example-title
.. _sphx_glr_gallery_ticks_and_spines_major_minor_demo.py:
=====================
Major and minor ticks
=====================
Demonstrate how to use major and minor tickers.
The two relevant classes are `.Locator`\s and `.Formatter`\s. Locators
determine where the ticks are, and formatters control the formatting of tick
labels.
Minor ticks are off by default (using `.NullLocator` and `.NullFormatter`).
Minor ticks can be turned on without labels by setting the minor locator.
Minor tick labels can be turned on by setting the minor formatter.
`.MultipleLocator` places ticks on multiples of some base.
`.StrMethodFormatter` uses a format string (e.g., ``'{x:d}'`` or ``'{x:1.2f}'``
or ``'{x:1.1f} cm'``) to format the tick labels (the variable in the format
string must be ``'x'``). For a `.StrMethodFormatter`, the string can be passed
directly to `.Axis.set_major_formatter` or
`.Axis.set_minor_formatter`. An appropriate `.StrMethodFormatter` will
be created and used automatically.
`.pyplot.grid` changes the grid settings of the major ticks of the y and y axis
together. If you want to control the grid of the minor ticks for a given axis,
use for example ::
ax.xaxis.grid(True, which='minor')
Note that a given locator or formatter instance can only be used on a single
axis (because the locator stores references to the axis data and view limits).
.. code-block:: default
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import (MultipleLocator, AutoMinorLocator)
t = np.arange(0.0, 100.0, 0.1)
s = np.sin(0.1 * np.pi * t) * np.exp(-t * 0.01)
fig, ax = plt.subplots()
ax.plot(t, s)
# Make a plot with major ticks that are multiples of 20 and minor ticks that
# are multiples of 5. Label major ticks with '.0f' formatting but don't label
# minor ticks. The string is used directly, the `StrMethodFormatter` is
# created automatically.
ax.xaxis.set_major_locator(MultipleLocator(20))
ax.xaxis.set_major_formatter('{x:.0f}')
# For the minor ticks, use no labels; default NullFormatter.
ax.xaxis.set_minor_locator(MultipleLocator(5))
plt.show()
.. image:: /gallery/ticks_and_spines/images/sphx_glr_major_minor_demo_001.png
:alt: major minor demo
:class: sphx-glr-single-img
Automatic tick selection for major and minor ticks.
Use interactive pan and zoom to see how the tick intervals change. There will
be either 4 or 5 minor tick intervals per major interval, depending on the
major interval.
One can supply an argument to `.AutoMinorLocator` to specify a fixed number
of minor intervals per major interval, e.g. ``AutoMinorLocator(2)`` would
lead to a single minor tick between major ticks.
.. code-block:: default
t = np.arange(0.0, 100.0, 0.01)
s = np.sin(2 * np.pi * t) * np.exp(-t * 0.01)
fig, ax = plt.subplots()
ax.plot(t, s)
ax.xaxis.set_minor_locator(AutoMinorLocator())
ax.tick_params(which='both', width=2)
ax.tick_params(which='major', length=7)
ax.tick_params(which='minor', length=4, color='r')
plt.show()
.. image:: /gallery/ticks_and_spines/images/sphx_glr_major_minor_demo_002.png
:alt: major minor demo
:class: sphx-glr-single-img
------------
References
""""""""""
The use of the following functions, methods, classes and modules is shown
in this example:
.. code-block:: default
import matplotlib
matplotlib.pyplot.subplots
matplotlib.axis.Axis.set_major_formatter
matplotlib.axis.Axis.set_major_locator
matplotlib.axis.Axis.set_minor_locator
matplotlib.ticker.AutoMinorLocator
matplotlib.ticker.MultipleLocator
matplotlib.ticker.StrMethodFormatter
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 1.447 seconds)
.. _sphx_glr_download_gallery_ticks_and_spines_major_minor_demo.py:
.. only :: html
.. container:: sphx-glr-footer
:class: sphx-glr-footer-example
.. container:: sphx-glr-download sphx-glr-download-python
:download:`Download Python source code: major_minor_demo.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: major_minor_demo.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
Keywords: matplotlib code example, codex, python plot, pyplot
`Gallery generated by Sphinx-Gallery
`_