Creating Tickels From a List of Values

PythonPythonBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

In this tutorial, you will learn how to use Matplotlib to create tick labels from a list of values. When using .Axes.set_xticks, the tick labels are set on the currently chosen ticks. However, sometimes it is better to allow Matplotlib to dynamically choose the number of ticks and their spacing. In this case, you may want to determine the tick label from the value at the tick. This tutorial will show you how to do this.

VM Tips

After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.

Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.

If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.

Import the necessary libraries

We begin by importing the necessary libraries for this tutorial, which are matplotlib.pyplot and MaxNLocator from matplotlib.ticker.

import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

Create a figure and axes object

Next, we create a figure and axes object using the subplots() method from matplotlib.pyplot.

fig, ax = plt.subplots()

Create the x and y data

We create the x and y data using the range() method from Python's built-in range function.

xs = range(26)
ys = range(26)

Create a list of labels

We create a list of labels using the list() method to convert a string of the alphabet to a list of characters.

labels = list('abcdefghijklmnopqrstuvwxyz')

Create a formatting function

We create a formatting function that determines the tick label from the value at the tick. If the tick value is an integer in the range of xs, the corresponding label from the labels list is returned. Otherwise, an empty string is returned.

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

Set the tick formatter and locator

We set the x-axis tick formatter to the formatting function created in Step 5 using the set_major_formatter() method. We also set the x-axis tick locator to MaxNLocator(integer=True) to ensure that the tick values take integer values.

ax.xaxis.set_major_formatter(format_fn)
ax.xaxis.set_major_locator(MaxNLocator(integer=True))

Create the plot

We create the plot using the plot() method from the axes object and pass in the xs and ys data.

ax.plot(xs, ys)

Display the plot

Finally, we display the plot using the show() method from matplotlib.pyplot.

plt.show()

Summary

In this tutorial, you learned how to create tick labels from a list of values using Matplotlib. We first created a figure and axes object, then created the x and y data, and finally created a list of labels. We then created a formatting function that determines the tick label from the value at the tick and set the tick formatter and locator. Finally, we created the plot and displayed it.

Other Python Tutorials you may like