Matplotlib Offset Copy

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся использовать transforms.offset_copy для позиционирования элемента рисунка, такого как текстовая строка, с заданным смещением в координатах экрана относительно заданного места в произвольных координатах. Мы будем использовать библиотеку Matplotlib в Python для создания точечного графика и полярного графика, а затем добавлять текст к каждому графику с использованием offset_copy.

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

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

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

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

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

Начнем с импорта необходимых библиотек: numpy и matplotlib.pyplot.

import numpy as np
import matplotlib.pyplot as plt

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

Далее мы создадим некоторые данные, которые будем использовать в наших графиках. Мы будем использовать numpy для создания двух массивов, xs и ys, которые мы будем использовать в качестве координат x и y для нашего точечного графика.

xs = np.arange(7)
ys = xs**2

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

Теперь мы создадим точечный график с использованием функции plot из matplotlib.pyplot.

fig = plt.figure(figsize=(5, 10))
ax = plt.subplot(2, 1, 1)

## Plot the data
for x, y in zip(xs, ys):
    plt.plot(x, y, 'ro')

Добавление текста к точечному графику

Теперь мы добавим текст к нашему точечному графику с использованием offset_copy. Сначала мы создадим трансформацию, которая позиционирует текст с заданным смещением в координатах экрана относительно заданного места в произвольных координатах. Затем мы будем использовать функцию text из matplotlib.pyplot для добавления текста к графику.

## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
                                       x=0.05, y=0.10, units='inches')

## Add text to the plot
for x, y in zip(xs, ys):
    plt.text(x, y, '%d, %d' % (int(x), int(y)), transform=trans_offset)

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

Теперь мы создадим полярный график с использованием функции polar из matplotlib.pyplot.

ax = plt.subplot(2, 1, 2, projection='polar')

## Plot the data
for x, y in zip(xs, ys):
    plt.polar(x, y, 'ro')

Добавление текста к полярному графику

Наконец, мы добавим текст к нашему полярному графику с использованием offset_copy и функции text из matplotlib.pyplot.

## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
                                       y=6, units='dots')

## Add text to the plot
for x, y in zip(xs, ys):
    plt.text(x, y, '%d, %d' % (int(x), int(y)),
             transform=trans_offset,
             horizontalalignment='center',
             verticalalignment='bottom')

Резюме

В этом практическом занятии мы узнали, как использовать transforms.offset_copy для позиционирования элемента рисунка с заданным смещением в координатах экрана относительно заданного места в произвольных координатах. Мы использовали эту функцию для добавления текста к точечному и полярному графикам, созданным с использованием библиотеки matplotlib.pyplot в Python.