Вращение текста в графиках Matplotlib

Beginner

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

Введение

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