Введение
В этом практическом занятии мы научимся использовать 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.