Введение
В этом руководстве вы узнаете, как использовать Matplotlib для создания меток делений из списка значений. При использовании .Axes.set_xticks метки делений назначаются на текущих выбранных делениях. Однако иногда лучше позволить Matplotlib динамически выбирать количество делений и их расстояние. В этом случае вы, возможно, захотите определить метку деления по значению на делении. В этом руководстве показано, как это сделать.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
Начнем с импорта необходимых библиотек для этого руководства, которые это matplotlib.pyplot и MaxNLocator из matplotlib.ticker.
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
Создаем объект Figure и оси
Далее мы создаем объект Figure и оси с помощью метода subplots() из matplotlib.pyplot.
fig, ax = plt.subplots()
Создаем данные по осям x и y
Мы создаем данные по осям x и y с использованием метода range() из встроенной функции range в Python.
xs = range(26)
ys = range(26)
Создаем список меток
Мы создаем список меток с использованием метода list(), чтобы преобразовать строку алфавита в список символов.
labels = list('abcdefghijklmnopqrstuvwxyz')
Создаем функцию форматирования
Мы создаем функцию форматирования, которая определяет метку деления по значению деления. Если значение деления является целым числом в диапазоне xs, то возвращается соответствующая метка из списка labels. В противном случае возвращается пустая строка.
def format_fn(tick_val, tick_pos):
if int(tick_val) in xs:
return labels[int(tick_val)]
else:
return ''
Задаем форматтер и локатор делений
Мы задаем форматтер делений оси x нашей созданной в шаге 5 функцией форматирования с использованием метода set_major_formatter(). Также задаем локатор делений оси x MaxNLocator(integer=True) для обеспечения того, чтобы значения делений были целыми числами.
ax.xaxis.set_major_formatter(format_fn)
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
Создаем график
Мы создаем график с использованием метода plot() объекта axes и передаем в него данные xs и ys.
ax.plot(xs, ys)
Отображаем график
Наконец, мы отображаем график с использованием метода show() из matplotlib.pyplot.
plt.show()
Резюме
В этом уроке вы узнали, как создавать метки делений из списка значений с использованием Matplotlib. Мы сначала создали объект figure и axes, затем создали данные по оси x и y, и наконец, создали список меток. Затем мы создали функцию форматирования, которая определяет метку деления по значению деления, и установили форматтер и локатор делений. Наконец, мы создали график и отобразили его.