Введение
В этом практическом занятии будет показано, как в Matplotlib вращать объекты текста относительно линии или объекта на графике, а не относительно системы координат экрана. Эта техника может быть полезна, когда необходимо вращать текст относительно определенного элемента на графике.
Советы по работе с ВМ
После запуска ВМ кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Построить диагональную линию
Во - первых, построим диагональную линию под углом 45 градусов с использованием функции plot() Matplotlib.
fig, ax = plt.subplots()
## Plot diagonal line (45 degrees)
h = ax.plot(range(0, 10), range(0, 10))
Настроить пределы графика
Далее мы настроим пределы графика, чтобы диагональная линия не была под углом 45 градусов при просмотре на экране. Это создаст ситуацию, в которой нам нужно вращать текст относительно линии, а не относительно системы координат экрана.
## set limits so that it no longer looks on screen to be 45 degrees
ax.set_xlim([-10, 20])
Определить расположение текста и угол вращения
Теперь мы определим места, где хотим нарисовать текст на рисунке, и угол вращения, который хотим использовать.
## Locations to plot text
l1 = np.array((1, 1))
l2 = np.array((5, 5))
## Rotate angle
angle = 45
Построить текст с неправильным вращением
Теперь мы построим текст в указанных местах, не учитывая вращение линии. В результате текст будет вращаться под углом 45 градусов, что не то, что мы хотим.
## Plot text
th1 = ax.text(*l1, 'text not rotated correctly', fontsize=16,
rotation=angle, rotation_mode='anchor')
Построить текст с правильным вращением
Наконец, мы построим текст в указанных местах, учитывая вращение линии. В результате текст будет вращаться под правильным углом относительно линии.
## Plot text
th2 = ax.text(*l2, 'text rotated correctly', fontsize=16,
rotation=angle, rotation_mode='anchor',
transform_rotates_text=True)
Показать рисунок
Мы покажем рисунок, чтобы увидеть разницу между двумя наборами нарисованного текста.
plt.show()
Резюме
В этом практическом занятии мы узнали, как в Matplotlib вращать объекты текста относительно линии или объекта на графике. Используя параметр transform_rotates_text, мы смогли обеспечить правильный угол вращения текста относительно линии, а не относительно системы экранных координат.