Изменение форматтера координат в Matplotlib

Beginner

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

Введение

Matplotlib - это библиотека для визуализации данных в Python. Она предоставляет широкий спектр инструментов для создания различных типов графиков, диаграмм и карт. Одной из полезных функций Matplotlib является возможность настраивать форматтер координат. В этом практическом занятии мы пройдемся по шагам настройки форматтера координат в Matplotlib для отображения значения "z" ближайшего пикселя по заданным значениям x и y.

Советы по работе с ВМ

После запуска виртуальной машины кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем необходимые модули

Для начала нам нужно импортировать необходимые модули. В данном случае мы импортируем matplotlib.pyplot и numpy.

import matplotlib.pyplot as plt
import numpy as np

Создаем случайную матрицу

Далее мы создадим случайную матрицу с использованием numpy. Мы будем использовать метод rand, чтобы создать матрицу 5x3 с случайными значениями в диапазоне от 0 до 1. Также мы установим случайный сид, чтобы обеспечить воспроизводимость результатов.

## Fixing random state for reproducibility
np.random.seed(19680801)

X = 10*np.random.rand(5, 3)

Создаем график

Теперь мы создадим график матрицы с использованием метода imshow класса axes библиотеки Matplotlib.

fig, ax = plt.subplots()
ax.imshow(X)

Изменяем форматтер координат

Теперь мы изменим форматтер координат, чтобы отображать значение "z" ближайшего пикселя изображения по заданным значениям x и y. Это можно сделать, настроив функцию ~.axes.Axes.format_coord.

def format_coord(x, y):
    col = round(x)
    row = round(y)
    nrows, ncols = X.shape
    if 0 <= col < ncols and 0 <= row < nrows:
        z = X[row, col]
        return f'x={x:1.4f}, y={y:1.4f}, z={z:1.4f}'
    else:
        return f'x={x:1.4f}, y={y:1.4f}'

ax.format_coord = format_coord

Отображаем график

Наконец, мы отобразим график с использованием метода plt.show().

plt.show()

Резюме

В этом практическом занятии мы узнали, как изменить форматтер координат в Matplotlib для отображения значения "z" ближайшего пикселя изображения по заданным значениям x и y. Мы также узнали, как создать график случайной матрицы с использованием метода imshow и настроить функцию ~.axes.Axes.format_coord для изменения форматтера координат.