Аннотирование графиков Matplotlib с использованием систем координат

Beginner

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

Введение

Matplotlib - это мощный инструмент визуализации, который позволяет пользователям создавать широкий спектр графиков и диаграмм. Аннотации - важная функция Matplotlib, которая позволяет пользователям добавлять текст и стрелки к своим графикам. В этом руководстве мы узнаем, как использовать разные системы координат для аннотаций.

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

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

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

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

Импорт библиотек

Первым шагом является импорт необходимых библиотек. Мы будем использовать библиотеку matplotlib.pyplot для создания нашего графика и аннотаций.

import matplotlib.pyplot as plt
import numpy as np

Создание данных

Далее мы создадим некоторые данные для построения графика. Мы будем использовать библиотеку numpy для создания синусоидальной волны.

x = np.arange(0, 10, 0.005)
y = np.exp(-x/2.) * np.sin(2*np.pi*x)

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

Теперь мы создадим график с использованием библиотеки matplotlib.pyplot. Мы установим пределы по осям x и y и затем построим данные.

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlim(0, 10)
ax.set_ylim(-1, 1)

Преобразование координат

Следующим шагом является преобразование координат данных и отображения. Мы будем использовать метод ax.transData для преобразования координат данных и систему координат figure pixels для преобразования координат отображения.

xdata, ydata = 5, 0
xdisplay, ydisplay = ax.transData.transform((xdata, ydata))

Добавление аннотаций

Последним шагом является добавление аннотаций на график. Мы будем использовать метод ax.annotate для добавления текста и стрелок на график. Мы также будем использовать параметры bbox и arrowprops для стилизации аннотаций.

bbox = dict(boxstyle="round", fc="0.8")
arrowprops = dict(
    arrowstyle="->",
    connectionstyle="angle,angleA=0,angleB=90,rad=10")

offset = 72
ax.annotate(
    f'data = ({xdata:.1f}, {ydata:.1f})',
    (xdata, ydata),
    xytext=(-2*offset, offset), textcoords='offset points',
    bbox=bbox, arrowprops=arrowprops)
ax.annotate(
    f'display = ({xdisplay:.1f}, {ydisplay:.1f})',
    xy=(xdisplay, ydisplay), xycoords='figure pixels',
    xytext=(0.5*offset, -offset), textcoords='offset points',
    bbox=bbox, arrowprops=arrowprops)

Показать график

Последним шагом является показ графика с использованием метода plt.show().

plt.show()

Резюме

В этом уроке мы узнали, как использовать разные системы координат для аннотаций в Matplotlib. Мы создали график, преобразовали координаты данных и отображения и добавили аннотации на график с использованием метода ax.annotate. Аннотации - важная особенность Matplotlib, которая позволяет пользователям добавлять контекст и информацию к своим графикам.