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

PythonPythonBeginner
Практиковаться сейчас

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

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

Введение

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

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/BasicConceptsGroup -.-> python/comments("Comments") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/variables_data_types -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} python/booleans -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} python/comments -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} matplotlib/line_plots -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} python/lists -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} python/tuples -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} python/build_in_functions -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} python/data_collections -.-> lab-48984{{"Вращение текста в графиках Matplotlib"}} end

Построить диагональную линию

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