Визуализация Connection Patch в Matplotlib

Beginner

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

Введение

Matplotlib - это мощная библиотека визуализации данных на Python. Она предоставляет различные инструменты визуализации для создания потрясающих графиков и диаграмм. В этом лабе мы узнаем о ConnectionPatch, который используется для рисования линии между точками, определенными в разных системах координат и/или осях.

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

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

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

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

Импортируем необходимые библиотеки

Прежде чем начать, импортируем необходимые библиотеки.

import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch

Создаем график

Далее создадим график с двумя подграфиками.

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(6, 3))

Нарисуем простую стрелку

Теперь давайте нарисуем простую стрелку между двумя точками в координатах осей внутри одной оси.

xyA = (0.2, 0.2)
xyB = (0.8, 0.8)
coordsA = "data"
coordsB = "data"
con = ConnectionPatch(xyA, xyB, coordsA, coordsB,
                      arrowstyle="-|>", shrinkA=5, shrinkB=5,
                      mutation_scale=20, fc="w")
ax1.plot([xyA[0], xyB[0]], [xyA[1], xyB[1]], "o")
ax1.add_artist(con)

Нарисуем стрелку между разными осями

Нарисуем стрелку между одной и той же точкой в координатах данных, но в разных осях.

xy = (0.3, 0.2)
con = ConnectionPatch(
    xyA=xy, coordsA=ax2.transData,
    xyB=xy, coordsB=ax1.transData,
    arrowstyle="->", shrinkB=5)
fig.add_artist(con)

Нарисуем линию между различными точками

Наконец, нарисуем линию между различными точками, определенными в разных системах координат.

con = ConnectionPatch(
    ## в координатах осей
    xyA=(0.6, 1.0), coordsA=ax2.transAxes,
    ## x в координатах осей, y в координатах данных
    xyB=(0.0, 0.2), coordsB=ax2.get_yaxis_transform(),
    arrowstyle="-")
ax2.add_artist(con)

Резюме

В этом практическом занятии мы изучили ConnectionPatch, который используется для рисования линии между точками, определенными в разных системах координат и/или осях. Мы также узнали, как рисовать простую стрелку и линию между различными точками на графике.